Страницы: 1
RSS
Макрос снятия объединения и заполнения пустых ячеек
 
Во вложении файл с 1 заполненным столбцом Е. В этом столбце есть объединенные ячейки. Подскажите, пожалуйста, макрос, который будет убирать объединение у таких ячеек в столбце Е и заполнять образованные при этом пустые ячейки в этом столбце таким же числом, как при объединении (пример выделен синим). Заранее спасибо за Ваши ответы
Изменено: Евгений И. - 13.06.2019 11:58:31
 
Цитата
Евгений И. написал: Подскажите, пожалуйста, макрос...
Вам подсказываешь, а Вы даже не удосуживаетесь отписаться по результатам
Согласие есть продукт при полном непротивлении сторон
 
Можно так
 
Цитата
Sanja написал: Вам подсказываешь, а Вы даже не удосуживаетесь  отписаться по результатам
Прошу прощения, сегодня обязательно проверю (просто полагал, что итогового варианта не будет, не проверял). Спасибо за Ваше решение!!!
 
Код
Sub asd()
    For i = 7 To Cells(Rows.Count, 5).End(xlUp).Row
        If Range("E" & i).MergeCells Then
            Set tng = Range("E" & i).MergeArea
            tng.UnMerge
            For j = tng.Cells(1, 1).Row To tng.Cells(1, 1).Row + tng.Rows.Count - 1
                Cells(j, "E") = tng.Cells(1, 1).Value
            Next j
        End If
    Next i
End Sub
 
Цитата
msi2102 написал:
Можно так
Наоборот, необходимо чтобы вообще не было объединенных ячеек в столбце Е, то есть надо снять объединение по данному столбцу (это я могу сделать через макрорекодер) и всем пустым ячейкам "которые при этом добавятся" присвоить соседние номера (см. во вложении красным - было, синим - стало)
Изменено: Евгений И. - 13.06.2019 12:27:39
 
Спасибо за решение, то, что нужно!!!
 
Или Вам нужно со всех столбцов снять группировку?
 
Нет, только со столбца Е
 
Цитата
написал:
КодSub asd()
   For i = 7 To Cells(Rows.Count, 5).End(xlUp).Row
       If Range("E" & i).MergeCells Then
           Set tng = Range("E" & i).MergeArea
           tng.UnMerge
           For j = tng.Cells(1, 1).Row To tng.Cells(1, 1).Row + tng.Rows.Count - 1
               Cells(j, "E") = tng.Cells(1, 1).Value
           Next j
       End If
   Next i
End Sub
День добрый.
Подскажите, пжл, есть задача по разъединению ячеек и копированию информации из объединённой ячейки по всей строке со столбца A по H.
Поигрался с данным кодом, не получается прописать синтаксис диапазона, в том числе копирование диапазона.
Можете меня направить.
Изменено: Alexsandr - 20.03.2024 14:02:08
 
Цитата
написал:
День добрый. Подскажите, пжл, есть задача по разъединению ячеек и копированию информации из объединённой ячейки по всей строке со столбца A по H.Поигрался с данным кодом, не получается прописать синтаксис диапазона, в том числе копирование диапазона. Можете меня направить.
Возможно кому-то будет интересно.

Макрос копирует информацию из объединенных строк/столбцов/ячеек. Код начинает работу с ячейки A11, разъединяет и копирует информацию со столбца A по H, в моём примере столбец D не имеет объединенных строк/столбцов/ячеек.

Макрос ниже:

Option Explicit

Sub CellsRows()
Dim i, j, tng, x
For i = 11 To Cells(Rows.Count, 4).End(xlUp).Row
For x = 1 To 8
If Cells(i, x).MergeCells Then
Set tng = Cells(i, x).MergeArea
tng.UnMerge
For j = tng.Cells(1, 1).Row To tng.Cells(1, 1).Row + tng.Rows.Count - 1
Cells(j, x) = tng.Cells(1, 1).Value
Next j
End If
Next x
Next i

End Sub

 
Цитата
Alexsandr написал:
Возможно кому-то будет интересно
Правильно будет так:
Код
Dim i As Long, j As Long, tng As Range, x As Long
' Ваш остальной код здесь 
Set tng = Nothing 
End Sub
 
Цитата
написал:
Правильно будет так:КодDim i As Long, j As Long, tng As Range, x As Long
' Ваш остальной код здесь
Set tng = Nothing
End Sub
Что именно даёт данная строка - Set tng = Nothing?
Я ради интереса попробовал ваше уточнение, результат был таким же, как в размещенном мною коде.
По скорости работы кода (а это часть кода) наблюдается увеличение ~ на 0,001 секунды.
Изменено: Alexsandr - 29.03.2024 12:22:05
 
Alexsandr, А воспользоваться Справкой тяжело было?
Всегда в случае каких либо непонятных записей в коде можно обратится к Справке, не только копи - пасте.
 
Вы меня не удивили и не убедили, я обращался к справочнику множество раз, прочитал, и кстати говоря, я не скажу Вам, что данную строчку я вижу в кодах.
Вы так и не сказали, что именно изменится? Код отрабатывает очень быстро, при учёте того, что это только часть кода, если будет эта строка, или её не будет, ничего не изменится, по крайней мере в решаемой мною задаче.

И я Вам советую использовать Копи-Паст, это полезное сочетание клавиш, а не постоянно всё вводить вручную.
Изменено: Alexsandr - 29.03.2024 15:28:19
 
Alexsandr, Вам я смотрю не хватает общения. Вы вышли за рамки данной темы. Хотите дальше обсуждать - создавайте тему в Курилке тему и там обсуждаете там: что, зачем и как. Кстати там возможно вы и найдёте ответ на свой вопрос если вам Справка не помогла понять этого, как и в случае копи - пасте. Удачи.
P.S.
Ключевое слово Nothing имеет несколько применений:
1) освободить объектную переменную
2) для возврата из функции, которая завершилась неудачей
3) инициализировать объектную переменную
Иными словами:
Когда переменная установлена, ей выделяется место в памяти.  установка значения Nothing приводит к вызову команды VBA для повторного освобождения памяти для ОС оно не только не имеет ценности, но и больше не является частью программы.  Рекомендуется удалять объекты из памяти, поскольку они могут быть довольно большими и вскоре засорять рабочее пространство.
Если вам не жалко памяти системы то пожалуйста, не освобождайте память и засоряйте её. Дело ваше.
Изменено: MikeVol - 29.03.2024 20:27:54
 
Ну почему же за рамки, мы обсуждаем рабочий момент, делимся мнениями, и это вполне нормально, и почему интересно Вы так на это реагируете. Я вам написал в своём первом сообщении, что код отрабатывает очень быстро и ни о каком засорении памяти  речи не идёт, а Вы о какой-то Справке, надо переходить от теории сразу к практике, то что Вы написали 'Иными словами', это написано в книгах по VBA.

То что Вы написали в P. S. это совсем другой разговор, а не пустая теория, перешли к практике, а не к слабым замечаниям, буду иметь в виду ваши уточнения, и причём тут Курилка и ваше любимое Копи - Паст, Справка вам в этом видимо помогла.  
Страницы: 1
Наверх