Задача: 1. Имеется файл Excel с объединенными ячейками (см. приложение) 2. Необходим макрос который находит объединенную ячейку, разъединяет её и во все получившиеся после разъединения ячейки записывает значение, которое было в объединенной ячейке. 3. В примере файла Excel: на листе1 исходные данные, на листе 2 как должно быть после применения макроса.
Спасибо!
Всем доброго времени суток!
Нужна помощь знатоков VBA в написании макроса!
Задача: 1. Имеется файл Excel с объединенными ячейками (см. приложение) 2. Необходим макрос который находит объединенную ячейку, разъединяет её и во все получившиеся после разъединения ячейки записывает значение, которое было в объединенной ячейке. 3. В примере файла Excel: на листе1 исходные данные, на листе 2 как должно быть после применения макроса.
Здравствуйте. Последовательность действий такая: - выделяем нужный диапазон (в примере А3:G29) - снимаем объединение ячеек - нажимаем F5 -- Выделить -- Пустые ячейки -- ОК - нажимаем на клавиатуре = и стрелку вверх. В строке формул должно получиться =A3 - нажимаем на клавиатуре сочетание Ctrl+Enter
Здравствуйте. Последовательность действий такая: - выделяем нужный диапазон (в примере А3:G29) - снимаем объединение ячеек - нажимаем F5 -- Выделить -- Пустые ячейки -- ОК - нажимаем на клавиатуре = и стрелку вверх. В строке формул должно получиться =A3 - нажимаем на клавиатуре сочетание Ctrl+Enter
Если всё выделять другая проблема появляется, ячейки которые не были объеденены тоже заполняются, а это не нужно. Нужно, чтоб заполнялись ячейки которые были объединенными.
Pelena,
Цитата
Выделите весь диапазон с данными
Если всё выделять другая проблема появляется, ячейки которые не были объеденены тоже заполняются, а это не нужно. Нужно, чтоб заполнялись ячейки которые были объединенными. Aleksej
Sub ertert() Dim r As Range For Each r In Range("A3:G" & Cells(Rows.Count, 1).End(xlUp).Row) If r.MergeCells Then With r.MergeArea .UnMerge .Value = r.Value End With End If Next r End Sub
[/vba] правда, на тысячах ячеек будет, видимо, тормозить
можно так попробовать [vba]
Код
Sub ertert() Dim r As Range For Each r In Range("A3:G" & Cells(Rows.Count, 1).End(xlUp).Row) If r.MergeCells Then With r.MergeArea .UnMerge .Value = r.Value End With End If Next r End Sub
[/vba] правда, на тысячах ячеек будет, видимо, тормозитьnilem
Изменил исходный файл - ЛИСТ1. Возможно, чтоб макрос сам находил только объединенные ячейки, разъединял и заполнял их? :( Потому что реальный исходный файл, там тысячи строк. Выложить настоящий не могу по понятным причинам.
Pelena,
Цитата
приведите более реальный пример
Изменил исходный файл - ЛИСТ1. Возможно, чтоб макрос сам находил только объединенные ячейки, разъединял и заполнял их? :( Потому что реальный исходный файл, там тысячи строк. Выложить настоящий не могу по понятным причинам.Aleksej