Страницы: 1
RSS
Объединить ячейки. содержащие значения, с пустыми под этими зачениями
 
Добрый день, уважаемые форумчане.
Знаю, что на форуме чаще всего рекомендуют избегать объеденение ячеек как зло!!! (порылся в поисках ответа на вопрос)
Проблема такая: с 25 строки в столбце А каждые 2 строки есть какая то цифра.
мне нужно объединить ячейку с соседними (для первой цифры диапазон А25:С26). И далее, объединить все ячейки содержащие цифры в столбце А.
Почти уверен что надо пользоваться циклом for each.
Но что то идет не по плану и код объединяет через 2 строки все... вот код.
Код
    Application.DisplayAlerts = False   
    Dim II As Long
    II = 25
    For Each cell In ActiveSheet.UsedRange.Range("A25:A250").Cells
    Range("A" & II).Select
    If cell.Value > "0" Then Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(1, 2)).Merge
    II = II + 2
    Next

Подскажите как сделать так, чтобы он не перескакивал и чтобы, как только он дошел до последней заполненной ячейки он объединил и закончил выполнение.

Изменено: VVS_001 - 12.02.2020 14:27:20
 
Код
For Each Cell In ActiveSheet.UsedRange.Range("A25:A250").Cells
        If Cell.Value > 0 Then Cell.Resize(2).Merge
Next
 
skais675, спасибо большое!
Почти то что нужно. только поправил Resize(2, 3), чтобы еще и с колонками объединял.
 
А можете еще подсказать, как правильно сделать копирование формул из диапозона D25:L26 в строки, у которых в колонке А есть значения?
пробовал похожий код:
Код
Range("D25:D26").Select
 
  Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 8).Copy
  
  For Each Cell In ActiveSheet.UsedRange.Range("A25:A300").Cells
        If Cell.Value > 0 Then ActiveCell(2, 0).PasteSpecial xlFormulas
  Next

Изменено: VVS_001 - 12.02.2020 12:12:44
 
VVS_001 приложите пример как есть и как нужно.
Вставляем не в activecell а в cell (снова те же грабли)
Изменено: skais675 - 12.02.2020 12:18:32
 
skais675, Файл тут. На формулы внимания не обращайте, там у меня впр, только другой. но суть такая же, от номера в колонке А подтягиваются данные в 2 строки.
С Cell понял, но все равно при проверке (F8 в модуле) я вижу что он копирует либо 1 строку, либо 3, но никак не 2. и не вствляет куда надо.
Изменено: VVS_001 - 12.02.2020 12:26:26
 
Код
  Range("D25:L26").Copy
    For Each Cell In ActiveSheet.UsedRange.Range("A27:A250").Cells
        If Cell.Value > 0 Then Cell.Offset(, 1).PasteSpecial
    Next
Изменено: skais675 - 12.02.2020 12:42:32
 
skais675, ругается на Cell.Offset(, 1).Paste

object doesn't support this property or method
 
замените на PasteSpecial
 
skais675, Пушка! Спасибо большое!
Буду далее изучать как работать с for each.
Страницы: 1
Наверх