Страницы: 1
RSS
Разбитие ячеек с автозаполнением
 
Подскажите, пожалуйста, кто в курсе, как решить следующую проблему.  
 
Имеется большой лист Excel, в котором огромное количество объединенных ячеек, в каждой из которых содержится определенное значение. Необходимо все эти ячейки разбить, при этом чтобы массив ячеек, получающийся после разбиения объединенной ячейки, содержал в себе значение - т. е. соответствующее одинаковое (для всех ячеек в получившемся массиве разбитых ячеек) значение должно содержаться в каждой ячейке, а не только в верхней левой. Все значения в исходных объединенных ячейках разные, соответственно они должны быть разные в получившихся массивах разбитых ячейках. Как сделать это "вручную", для каждой объединенной ячейки в отдельности, вполне понятно. Вопрос в том, как это можно каким-то образом ускорить, автоматизировать?  
Спасибо.
 
Sub UnMergeCells()  
   Dim cc As Range, cm As Range, ccm As Range  
   For Each cc In ActiveSheet.UsedRange  
       If cc.MergeCells Then  
           If cc.MergeArea.Rows.Count > 1 Then  
               Set cm = Range(cc.MergeArea.Address)  
               cc.UnMerge  
               For Each ccm In cm.Rows  
                   ccm.Merge  
                   ccm = cm.Cells(1, 1)  
               Next ccm  
           End If  
       End If  
   Next cc  
   ActiveSheet.UsedRange.Rows.AutoFit  
   ActiveSheet.UsedRange.Columns.AutoFit  
   MsgBox "Конец!", vbInformation, "Конец"  
End Sub
 
можно и вручную воспользовавшись приемом http://www.planetaexcel.ru/tip.php?aid=86:  
 
Выделяем необходимую область,  
Нажимаем Ctrl+1, убираем флаг "объединение ячеек", "ОК"  
не убирая выделения нажимаем Ctrl+G - "Выделить" - "Пустые ячейки"  
нажимаем на клавиатере "=", стрелка вверх, Ctrl+Enter  
осталось преобразовать формулы в значения  
 
Процедура занимает несколько секунд
 
post_143760.xls Дмитрий делал по моей просьбе...  
К стати, в том же в топике разбирался вопрос о разгруппировке с заполнением формулами-ссылками на первую ячейку каждого объединения  
На основании этих обсуждений, а также обсуждений в топике "Объединение ячеек без потери данных" я сделал для себя несколько очень удобных макросов, позволяющих:  
- объединять ячейки, не стирая имеющиеся в них данные  
- объединять ячейки, заполняя скрываемые при объединении ячейки либо формулами-ссылками на первую ячейку, либо её значениями (это удобно для фильтрации записей)  
- разъединять ячейки с заполнением открывающихся ячеек либо значениями из первой ячейки, либо формулами-ссылками на неё.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
Страницы: 1
Наверх