Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 13:55:00

Войти
Интересные и полезные статьи по работе с Excel и VBA можно найти в разделе ХИТРОСТИ
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Копирование всего столбца по условию в ячейке и при наличии группировки строк
Страниц: [1]   Вниз
Печать
Автор Тема: Копирование всего столбца по условию в ячейке и при наличии группировки строк  (Прочитано 3050 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« : 14.12.2018, 11:19:53 »

Прошу подсказать, как можно доработать следующий макрос, чтобы позволял копировать полностью весь столбец.
Условием является к примеру "Признак" в любой ячейке диапазона:
Код: (vb)
Sub COPY()
Dim oCell As Range
Sheets("Отчет1").Select
For Each oCell In [A1:DA60]
    If oCell.Value Like "Признак" Then
    oCell.Columns.Select
    Selection.COPY
    End If
Next
End Sub

По данному макросу получается только скопировать ячейку...
« Последнее редактирование: 14.12.2018, 16:09:02 от vikttur » Записан
sboy
Постоялец
***

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 207


Просмотр профиля E-mail
« Ответ #1 : 14.12.2018, 12:20:08 »

Добрый день.
Код: (vb)
 oCell.EntireColumn
« Последнее редактирование: 14.12.2018, 16:05:01 от vikttur » Записан
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #2 : 14.12.2018, 14:39:17 »

Обнаружилась небольшая проблема. Данные должны копировать из ранее выгруженного файла ексель. Там в первые строки имеют сгруппированный характер. При выполнении макроса он захватывает весь диапазон таблицы.
Можно сделать чтобы. Select был по отношению к нацденому столбца начиная с 6 строки?

В конечном итоге мне нужно выделить определенный столбец полностью при условии в строке (не важно в какой).
Условие строки "Модель"
У меня не получается выделить весь столбец, так как первая строка имеет сгруппированный (объединенный) характер (все строки A1:AD1 объединены)
Поэтому макрос выделяет весь диапазон а не нужный столбец.

Данную проблему можно конечно обойти через удаление объединенных ячеек в строках (они не нужны для копирования данных)
Код: (vb)
Sub Delete()
Rows("1:3").Select
Selection.Delete Shift:=xlUp
End Sub

Но хотелось бы, чтобы не влиять на изменение файла в конечном итоге.
« Последнее редактирование: 14.12.2018, 16:07:39 от vikttur » Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #3 : 14.12.2018, 23:28:51 »

Начинайте цикл не с первой строки, а со второй.
Чтобы что-то скопировать/удалить, необязательно это выделять (Select).
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #4 : 17.12.2018, 16:41:05 »

Код: (vb)
Range("A1:AD1").UnMerge '-отменяет объединение ячеек
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru