Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление строк с объединёнными ячейками - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Удаление строк с объединёнными ячейками
tawki Дата: Четверг, 26.01.2017, 15:50 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем добрый день,
на работе понадобилось написать макрос который будет удалять строки с объединёнными ячейками.
Постараюсь объяснить как мне нужно построить макрос:
начиная со строки №4, если в строке ячейки с "A" до "H" обеднены, то данную строку необходимо удалить (строки №4, №6 и №15).

P.s. цвет не является критерием. изначально Таблица содержит около 5000 строк и таких строк с объединёнными ячейками там очень много, поэтому сделал выборку первых 25 строк.

Очень надеюсь на вашу помощь.
Я только начинаю знакомиться с макросом и для меня ещё не понятен алгоритм написания программ.

Спасибо
К сообщению приложен файл: Exc.macros.xlsm (24.4 Kb)
 
Ответить
СообщениеВсем добрый день,
на работе понадобилось написать макрос который будет удалять строки с объединёнными ячейками.
Постараюсь объяснить как мне нужно построить макрос:
начиная со строки №4, если в строке ячейки с "A" до "H" обеднены, то данную строку необходимо удалить (строки №4, №6 и №15).

P.s. цвет не является критерием. изначально Таблица содержит около 5000 строк и таких строк с объединёнными ячейками там очень много, поэтому сделал выборку первых 25 строк.

Очень надеюсь на вашу помощь.
Я только начинаю знакомиться с макросом и для меня ещё не понятен алгоритм написания программ.

Спасибо

Автор - tawki
Дата добавления - 26.01.2017 в 15:50
sboy Дата: Четверг, 26.01.2017, 16:04 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Тут можно попроще (не искать объединения). Судя по исходным данным столбец B (C,D...H) в нужной строке всегда пуст.
Поэтому предлагаю такой вариант
[vba]
Код
Sub ttt()
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
    If Cells(x, 2).Value = "" Then Rows(x).Delete
Next x
End Sub
[/vba]
К сообщению приложен файл: 9964837.xlsm (24.2 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Тут можно попроще (не искать объединения). Судя по исходным данным столбец B (C,D...H) в нужной строке всегда пуст.
Поэтому предлагаю такой вариант
[vba]
Код
Sub ttt()
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
    If Cells(x, 2).Value = "" Then Rows(x).Delete
Next x
End Sub
[/vba]

Автор - sboy
Дата добавления - 26.01.2017 в 16:04
K-SerJC Дата: Пятница, 27.01.2017, 08:31 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
или так если именно проверку на объединение надо
[vba]
Код

Sub ttt()
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
    If Cells(x, 2).MergeCells = True Then Rows(x).Delete
Next x
End Sub
[/vba]


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениеили так если именно проверку на объединение надо
[vba]
Код

Sub ttt()
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
    If Cells(x, 2).MergeCells = True Then Rows(x).Delete
Next x
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 27.01.2017 в 08:31
tawki Дата: Пятница, 27.01.2017, 09:46 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
спасибо большое за помощь. всё сработало.
так как я только начинаю пробовать работать с макросами:
1. не могли бы Вы "на пальцах" объяснить алгоритм работы приведёнными вами примерами?
2. в приложенном файле, какой код написать чтобы он удалял все строчки начиная с строки №4 (включительно) до конца таблицы (в оригинальном варианте около 5000 строк), удалить строчки если в ячейках "D" данных нет. я читал, что нужно написать код, который начнёт работать с конца таблицы, но честно сказать не понимаю пока как это всё работает. как вы можете увидеть в макросе, там удаляются все строчки (в столбце D) в которых есть текст UNBW, ZSIM, UMBW и NBUW. наверно можно вместо слова добавить просто кавычки "", но я не знаю как указать диапазон строк и как сделать так что бы макрос начал работать снизу вверх иначе после окончания таблицы там везде пустые ячейки и все к чёрту зависнет.

Спасибо заранее
К сообщению приложен файл: ____v2.xlsm (37.7 Kb)
 
Ответить
Сообщениеспасибо большое за помощь. всё сработало.
так как я только начинаю пробовать работать с макросами:
1. не могли бы Вы "на пальцах" объяснить алгоритм работы приведёнными вами примерами?
2. в приложенном файле, какой код написать чтобы он удалял все строчки начиная с строки №4 (включительно) до конца таблицы (в оригинальном варианте около 5000 строк), удалить строчки если в ячейках "D" данных нет. я читал, что нужно написать код, который начнёт работать с конца таблицы, но честно сказать не понимаю пока как это всё работает. как вы можете увидеть в макросе, там удаляются все строчки (в столбце D) в которых есть текст UNBW, ZSIM, UMBW и NBUW. наверно можно вместо слова добавить просто кавычки "", но я не знаю как указать диапазон строк и как сделать так что бы макрос начал работать снизу вверх иначе после окончания таблицы там везде пустые ячейки и все к чёрту зависнет.

Спасибо заранее

Автор - tawki
Дата добавления - 27.01.2017 в 09:46
Pelena Дата: Пятница, 27.01.2017, 10:14 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
tawki, второй вопрос к данной теме не относится. Читайте Правила форума


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеtawki, второй вопрос к данной теме не относится. Читайте Правила форума

Автор - Pelena
Дата добавления - 27.01.2017 в 10:14
K-SerJC Дата: Пятница, 27.01.2017, 13:38 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
не могли бы Вы "на пальцах" объяснить алгоритм работы приведёнными вами примерами?


в коде создан цикл, в котором переменной х присваивается номер последней строки и задается шаг -1, цикл работает до значения 3
[vba]
Код
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
[/vba]
конструкция:
[vba]
Код
If Cells(x, 2).MergeCells = True Then Rows(x).Delete
[/vba]
условие, если ячейка(строка х, столбец 2) имеет свойство объединения как истина, то строку с номером х удаляем

не понял зачем вам второй вопрос, если этот код и так работает от последней строки и вверх...


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
не могли бы Вы "на пальцах" объяснить алгоритм работы приведёнными вами примерами?


в коде создан цикл, в котором переменной х присваивается номер последней строки и задается шаг -1, цикл работает до значения 3
[vba]
Код
For x = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
[/vba]
конструкция:
[vba]
Код
If Cells(x, 2).MergeCells = True Then Rows(x).Delete
[/vba]
условие, если ячейка(строка х, столбец 2) имеет свойство объединения как истина, то строку с номером х удаляем

не понял зачем вам второй вопрос, если этот код и так работает от последней строки и вверх...

Автор - K-SerJC
Дата добавления - 27.01.2017 в 13:38
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!