{quote}{login=Марчук}{date=19.10.2009 12:18}{thema=}{post}Sub Макрос1()
For r = 1 To 10
For c = 1 To 10
If Cells(r, c).MergeCells = True Then Debug.Print Cells(r, c).MergeArea.Address
Next
Next
End Sub{/post}{/quote}
Огромное спасибо!
задел есть
теперь осталось вставить в код алгоритм исключения из циклов ячеек, входящих в объединение или уже выявленных объединенных ячеек
PS все таки знание процедур VBA у меня слабовато
СПАСИБО ВСЕМ!!!
Вы знаете, как найти и выделить все объединенные ячейки в Excel? Вот крутые хитрые способы быстро определить и выбрать все объединенные ячейки в выделении или диапазоне в Microsoft Excel 2007 и 2010.
Определите и выберите все объединенные ячейки с помощью команды Найти
Определите все объединенные ячейки с кодом VBA
Выберите и подсчитайте все объединенные ячейки с помощью Kutools for Excel
Определите и выберите все объединенные ячейки с помощью команды Найти
Вы можете определить и выбрать все объединенные ячейки на активном листе с помощью Арендовать команду со следующими шагами:
1, Нажмите Главная > Найти и выбрать > Арендовать для открытия Найти и заменить диалоговое окно. Вы также можете открыть Найти и заменить диалоговое окно с нажатием Ctrl + F ключи.
2, Нажмите Формат в диалоговом окне, (Если вы не можете узнать Формат кнопку, нажмите Опции кнопку, чтобы развернуть диалоговое окно.) см. снимок экрана:
3. В всплывающем Найти формат диалоговое окно, только отметьте Объединить ячейки вариант в Текстовый контроль Раздел под центровка вкладку и щелкните OK.
4. Теперь вы вернетесь к Найти и заменить диалоговое окно, нажмите Найти все кнопка. Все объединенные ячейки перечислены в нижней части этого диалогового окна. Выберите все результаты поиска, удерживая Shift .
Теперь при выборе всех результатов поиска выделяются все объединенные ячейки на активном листе. Смотрите скриншот:
Советы: Если вы хотите только идентифицировать, находить и выбирать объединенные ячейки в выделенном фрагменте, вам необходимо сначала выбрать диапазон.
Определите все объединенные ячейки с кодом VBA
VBA 1: определить и выделить все объединенные ячейки
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
Sub FindMergedcells()
'updateby Extendoffice
Dim x As Range
For Each x In ActiveSheet.UsedRange
If x.MergeCells Then
x.Interior.ColorIndex = 8
End If
Next
End Sub
3, нажмите F5 ключ для запуска этого макроса. Все объединенные ячейки в активном листе идентифицируются и выделяются, см. Снимок экрана:
VBA 2: определить и перечислить все объединенные ячейки
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
Sub ListMergedcells()
'updateby Extendoffice
Dim x As Range
Dim sMsg As String
sMsg = ""
For Each x In ActiveSheet.UsedRange
If x.MergeCells Then
If sMsg = "" Then
sMsg = "Merged cells:" & vbCr
End If
sMsg = sMsg & Replace(x.Address, "$", "") & vbCr
End If
Next
If sMsg = "" Then
sMsg = "No merged cells."
End If
MsgBox sMsg
End Sub
3, нажмите F5 Нажмите клавишу для запуска этого макроса, все объединенные ячейки будут перечислены во всплывающем диалоговом окне. Смотрите скриншот:
Выберите и подсчитайте все объединенные ячейки с помощью Kutools for Excel
Kutools for Excel‘s Выбрать объединенные ячейки Инструмент поможет вам идентифицировать, найти и выбрать все объединенные ячейки в выделении одним щелчком мыши.
После установки Kutools for Excel, пожалуйста, сделайте следующее Бесплатная загрузка Kutools for Excel от Yhao сейчас! )
1. Выберите диапазон данных, в котором вы хотите выделить объединенные ячейки.
2. Нажмите Кутулс > Выберите > Выбрать объединенные ячейки, см. снимок экрана:
3. И все объединенные ячейки в выделении были выбраны сразу, и количество объединенных ячеек также подсчитывается, см. Снимок экрана:
Бесплатная загрузка Kutools for Excel от Yhao сейчас!
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
I have an Excel document that contains duty shifts. I would like to findout if there is any merged cells like given below withing given range..
How can I determine the cells are filled in given range or the cells are merged in given range?
If IsEmpty(Range("NewRange")) = False Then
z = z + 1 'My counter
End If
I tried IsEmpty Function but it doesnt work correctly on merged cells. You can try but the result is same.. While I got a block of empty cells there it counts as filled..
asked Feb 12, 2015 at 14:10
Berker YüceerBerker Yüceer
7,00618 gold badges67 silver badges102 bronze badges
1
Мне не надо искать объединенные ячейки. Это я могу
Смотри: В ячейке A1 — «Вася», A2 — «Коля» и т.д.
Запускаю процедуру поиска, например:
Visual Basic | ||
|
Все окей, найдем ячейку A2.
Теперь объединяем ячейку A2 c B2.
Запускаем тот же код и Коля найден не будет, чтобы егонайти, нужно каждый раз проверять свойства ячейки, если она с чем-то объеденина, снимать объединение, потом возвращать обратно. Можно как-то просто сразу найти «Коля» в объединенной ячейке.
Не совсем понятна задача.
Проверить, объединена ли ячейка с другой (другими):
If Worksheets("Лист1").Cells(1, 3).MergeCells Then MsgBox "Таки да!"
При объединении значение ячеек, кроме левой верхней, теряются. В таком случае для создания списка для ComboBox не обязательно проверять, объединены ли ячейки, достаточно проверить ячейки на наличие данных. Код, создающий список элемента формы:
Private Sub UserForm_Initialize()
Dim Rng As Range
Dim n
' создать выпадающий список
With Worksheets("Лист1")
Set Rng = .Range("C1:H4") ' присвоить переменной диапазон "шапки" таблицы
End With
' цикл по ячейкам
For Each n In Rng.Value
If n <> "" Then ' если в ячейке есть данные
Me.ComboBox1.AddItem n ' добавить строку в список
End If
Next n
End Sub
P.S. В расчетных таблицах старайтесь по возможности не объединять ячейки, могут быть проблемы с вычислениями.