Идентификация объединенных ячеек

Алан спросил, есть ли способ быстро и легко определить, какие ячейки объединены в книгу, созданную кем-то другим. На самом деле существует несколько различных способов идентификации этих ячеек.

Один из методов идентификации ячеек – использовать возможности поиска Excel. Выполните следующие действия:

  1. Нажмите Ctrl + F . Excel отображает вкладку «Найти» в диалоговом окне «Найти и заменить».
  2. При необходимости нажмите кнопку «Параметры», чтобы убедиться, что диалоговое окно «Найти и заменить» развернуто и отображает все параметры. (См. Рис. 1.)
  3. Рис. 1. Вкладка «Найти» диалогового окна «Найти и заменить».

  4. Убедитесь, что поле «Найти» пусто.
  5. С точкой вставки в в поле “Найти” нажмите кнопку “Формат”. Excel отображает диалоговое окно «Найти формат».
  6. Убедитесь, что отображается вкладка «Выравнивание». (См. Рис. 2.)
  7. Рис. 2. Вкладка «Выравнивание» диалогового окна «Найти формат».

  8. Убедитесь, что установлен флажок «Объединить ячейки» (флажок должен быть установлен).
  9. Нажмите OK, чтобы закрыть диалоговое окно “Найти формат”.
  10. Нажмите “Найти все”.

Excel выполнит поиск всех объединенных ячеек и, если они расположены, ячейки отображаются в нижней части диалогового окна «Найти и заменить». Затем вы можете выбрать один из найденных диапазонов, и соответствующий диапазон будет выбран на листе.

При желании вы можете использовать макрос для поиска различных объединенных ячеек на листе. Следующий макрос показывает, пожалуй, самый простой способ сделать это:

 Sub FindMerged1 () Dim c As Range For Each c In ActiveSheet.UsedRange Если c.MergeCells, то MsgBox c.Address & "объединяется"  End If NextEnd 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 NextEnd Sub 

Вариантом этого подхода может быть создание пользовательской функции, которая просто возвращает True или False, если ячейка объединена:

 Функция FindMerged3 (rCell как диапазон) FindMerged3 = rCell. Функция MergeCellsEnd 

С помощью этой простой функции вы можете затем использовать условное форматирование, чтобы каким-то образом выделить ячейки, если они объединены. (Если функция возвращает 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 = "Объединенные ячейки листа:" & vbCr End If sMsg = sMsg & c.Address & vbCr End If Next If sMsg = "" Тогда sMsg = "Нет объединенных ячеек листа."  End If MsgBox sMsgEnd Sub 

В этом варианте в конце макроса отображается одно окно сообщения, в котором указаны адреса всех объединенных ячеек, расположенных на листе.

Оцените статью
Frestage.ru
Добавить комментарий