Определение объединенных ячеек (Microsoft Excel)
Алан спросил, есть ли способ быстро и легко определить, какие ячейки объединены в книгу, созданную кем-то другим. На самом деле существует несколько разных способов идентификации этих клеток.
Один из методов идентификации ячеек — использовать возможности поиска Excel. Выполните следующие действия:
-
Нажмите Ctrl + F. Excel отображает вкладку «Найти» диалогового окна «Найти и заменить».
-
При необходимости нажмите кнопку «Параметры», чтобы убедиться, что диалоговое окно «Найти и заменить» развернуто и отображает все параметры. (См. Рис. 1.)
-
Убедитесь, что поле «Найти» пусто.
-
Поместив курсор в поле «Найти», нажмите кнопку «Формат». Excel отображает диалоговое окно «Найти формат».
-
Убедитесь, что отображается вкладка «Выравнивание». (См. Рис. 2.)
-
Убедитесь, что установлен флажок «Объединить ячейки» (в нем должен быть установлен флажок).
-
Нажмите OK, чтобы закрыть диалоговое окно «Найти формат».
-
Щелкните «Найти все».
Excel выполняет поиск всех объединенных ячеек, и, если они находятся, ячейки отображаются в нижней части диалогового окна «Найти и заменить». Затем вы можете выбрать один из найденных диапазонов, и соответствующий диапазон будет выбран на листе.
При желании вы можете использовать макрос для поиска различных объединенных ячеек на листе. Следующий макрос показывает, пожалуй, самый простой способ сделать это:
Sub FindMerged1() Dim c As Range For Each c In ActiveSheet.UsedRange If c.MergeCells Then MsgBox c.Address & " is merged" End If Next End Sub
Этот конкретный макрос проходит через все ячейки на листе (ну, по крайней мере, те, которые находятся в UsedRange), и, если ячейка является частью объединенной ячейки, отображается окно сообщения. Обратите внимание, что соответствующее проверяемое свойство — это свойство MergeCells. Это установлено в True, если ячейка объединена с другой ячейкой.
Конечно, запуск такого макроса может занять довольно много времени, если на листе много ячеек, и даже дольше, если большое количество этих ячеек объединено. Ваш макрос работал бы быстрее, если бы он не останавливался на каждой объединенной ячейке и не отображал диалоговое окно. Следующая версия использует другой подход, заполняя каждую объединенную ячейку желтым цветом:
Sub FindMerged2() Dim c As Range For Each c In ActiveSheet.UsedRange If c.MergeCells Then c.Interior.ColorIndex = 36 End If Next End Sub
Вариантом этого подхода может быть создание пользовательской функции, которая просто возвращает True или False, если ячейка объединена:
Function FindMerged3(rCell As Range) FindMerged3 = rCell.MergeCells End Function
С помощью этой простой функции вы можете затем использовать условное форматирование, чтобы как-то выделить ячейки, если они объединены. (Если функция возвращает значение True, то условное форматирование применяет любое указанное вами форматирование к ячейке.)
Наконец, если вам нужен список ячеек, которые объединены на листе, вы можете просто собрать свой макрос вместе, а не раскрашивать ячейки:
Sub FindMerged4() Dim c As Range Dim sMsg As String sMsg = "" For Each c In ActiveSheet.UsedRange If c.MergeCells Then If sMsg = "" Then sMsg = "Merged worksheet cells:" & vbCr End If sMsg = sMsg & c.Address & vbCr End If Next If sMsg = "" Then sMsg = "No merged worksheet cells." End If MsgBox sMsg End Sub
Этот вариант отображает одно окно сообщения в конце макроса с указанием адресов всех объединенных ячеек, расположенных на листе.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3905) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Identifying_Merged_Cells [Определение объединенных ячеек]
.