Excel vba поиск объединенных ячеек
Добрый день!
Подскажите, пожалуйста, каким образом можно искать объединённые ячейки (или проверить, есть ли объединённые ячейки) и, допустим, выделить все объединённые ячейки?
Добрый день!
Подскажите, пожалуйста, каким образом можно искать объединённые ячейки (или проверить, есть ли объединённые ячейки) и, допустим, выделить все объединённые ячейки? Roman777
[p.s.]не, так он их все объединит.
[p.s.]не, так он их все объединит. KSV
[p.s.]не, так он их все объединит. Автор - KSV
Дата добавления - 02.06.2015 в 10:18
Sub Макрос1()
Dim r As Range, r1 As Range, s$, b As Boolean
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then s = s & r.Address & "|"
Next
If Len(s) > 0 Then
s = Left(s, Len(s) - 1)
Range(Join(Split(s, "|"), " ,")).Select
End If
End Sub
[/vba]
Выделит все обедененные ячейки в выделенном диапазоне
ЗЫ
Для правильности - нужно бы использовать словарь с добавлением "mergearea"(файл 2):
[vba]
Sub Макрос2()
Dim r As Range, r1 As Range, s$, b As Boolean, dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then If Not dic.Exists(r.MergeArea.Address) Then dic.Add r.MergeArea.Address, r.MergeArea.Address
If b Then s = s & r.Address & "|"
Next
If dic.Count > 0 Then
Range(Join(dic.keys, " ,")).Select
End If
End Sub
Sub Макрос1()
Dim r As Range, r1 As Range, s$, b As Boolean
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then s = s & r.Address & "|"
Next
If Len(s) > 0 Then
s = Left(s, Len(s) - 1)
Range(Join(Split(s, "|"), " ,")).Select
End If
End Sub
[/vba]
Выделит все обедененные ячейки в выделенном диапазоне
ЗЫ
Для правильности - нужно бы использовать словарь с добавлением "mergearea"(файл 2):
[vba]
Sub Макрос2()
Dim r As Range, r1 As Range, s$, b As Boolean, dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then If Not dic.Exists(r.MergeArea.Address) Then dic.Add r.MergeArea.Address, r.MergeArea.Address
If b Then s = s & r.Address & "|"
Next
If dic.Count > 0 Then
Range(Join(dic.keys, " ,")).Select
End If
End Sub
Иногда все проще чем кажется с первого взгляда.
Sub Макрос1()
Dim r As Range, r1 As Range, s$, b As Boolean
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then s = s & r.Address & "|"
Next
If Len(s) > 0 Then
s = Left(s, Len(s) - 1)
Range(Join(Split(s, "|"), " ,")).Select
End If
End Sub
[/vba]
Выделит все обедененные ячейки в выделенном диапазоне
ЗЫ
Для правильности - нужно бы использовать словарь с добавлением "mergearea"(файл 2):
[vba]
Sub Макрос2()
Dim r As Range, r1 As Range, s$, b As Boolean, dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Set r1 = Selection
For Each r In r1
b = r.MergeCells
If b Then If Not dic.Exists(r.MergeArea.Address) Then dic.Add r.MergeArea.Address, r.MergeArea.Address
If b Then s = s & r.Address & "|"
Next
If dic.Count > 0 Then
Range(Join(dic.keys, " ,")).Select
End If
End Sub
А как объединить эти два макроса в один?
у меня есть макрос, который правильно объединяет ячейки (в основном при работе с фильтрами),
у меня есть макрос, который находит объединенные ячейки,
у меня есть файл с более чем 20 000 неправильно объединенными ячейками.
как создать цикл, который бы все эти ячейки правилно объединил.
макросы прилагаются
((((((ПРАВИЛЬНАЯ ГРУППИРОВКА))))))
SUB ReMerge() ' перегруппировать сгруппированную ячейку или сгруппировать ячейки выделенного диапазона с заполнением скрытых ячеек формулами-ссылками на первую ячейку
IF TypeName(Selection) <> "Range" THEN EXIT SUB
IF Selection.Cells.Count DIM i%, iCell AS Range, ActRng AS Range
DIM ActSh AS Worksheet, TempSh AS Worksheet
DIM lLastRow&: lLastRow = Cells.SpecialCells(xlLastCell).Row
DIM lLastCol&: lLastCol = Selection.Column + Selection.Columns.Count - 1
IF lLastRow > Selection.Row + Selection.Rows.Count - 1 THEN lLastRow = Selection.Row + Selection.Rows.Count - 1
Set ActRng = Intersect(Selection, Range(Cells(Selection.Row, Selection.Column), Cells(lLastRow, lLastCol)))
Application.ScreenUpdating = False: Application.DisplayAlerts = False
Set ActSh = ActiveSheet: Set TempSh = Sheets.Add ' запомнить текущую и создать новую страницу
ActRng.Copy TempSh.Range(ActRng.Address)
ActSh.Activate
Selection.UnMerge
FOR i = 2 TO ActRng.Cells.Count ' заполнить Selection формулами-ссылками на первую ячейку
ActRng(i).Formula = "=" & ActRng(1).Address
ActRng(i).Replace What:="$", Replacement:="", LookAt:=xlPart ' сделать ссылки перемещаемыми
NEXT
TempSh.Range(ActRng.Address).Merge
TempSh.Range(ActRng.Address).Copy: ActRng.PasteSpecial xlPasteFormats: TempSh.Delete
Set ActSh = Nothing: Set TempSh = Nothing: Set ActRng = Nothing
Application.ScreenUpdating = True: Application.DisplayAlerts = True
END SUB
SUB MCells()
Application.FindFormat.MergeCells = True
Cells.Find(What:="", After:=ActiveCell, MatchCase:=False, SearchFormat:=True).Activate
END SUB
0 ПОВТОРИТЬ ПОКА НЕ ДОСТИГЛИ КОНЦА ТАБЛИЦЫ
1 ПОИСК ЯЧЕЙКИ
2 ПРИМЕНЕНИЕ МАКРОСА
Вы знаете, как найти и выделить все объединенные ячейки в Excel? Вот крутые хитрые способы быстро определить и выбрать все объединенные ячейки в выделении или диапазоне в Microsoft Excel 2007 и 2010.
Определите и выберите все объединенные ячейки с помощью команды Найти
Вы можете определить и выбрать все объединенные ячейки на активном листе с помощью Найдите команду со следующими шагами:
1, Нажмите Главная > Найти и выбрать > Найдите для открытия Найти и заменить диалоговое окно. Вы также можете открыть Найти и заменить диалоговое окно с нажатием Ctrl + F ключи.
2, Нажмите Формат в диалоговом окне, (Если вы не можете узнать Формат кнопку, нажмите Доступные опции кнопку, чтобы развернуть диалоговое окно.) см. снимок экрана:
3. В всплывающем Найти формат диалоговое окно, только отметьте Объединить ячейки вариант в Текстовый контроль Раздел под центровка вкладку и щелкните OK.
4. Теперь вы вернетесь к Найти и заменить диалоговое окно, нажмите Найти все кнопка. Все объединенные ячейки перечислены в нижней части этого диалогового окна. Выберите все результаты поиска, удерживая Shift ключ.
Теперь при выборе всех результатов поиска выделяются все объединенные ячейки на активном листе. Смотрите скриншот:
Советы: Если вы хотите только идентифицировать, находить и выбирать объединенные ячейки в выделенном фрагменте, вам необходимо сначала выбрать диапазон.
Определите все объединенные ячейки с кодом VBA
VBA 1: определить и выделить все объединенные ячейки
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
3, нажмите F5 ключ для запуска этого макроса. Все объединенные ячейки в активном листе идентифицируются и выделяются, см. Снимок экрана:
VBA 2: определить и перечислить все объединенные ячейки
1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
3, нажмите F5 Нажмите клавишу для запуска этого макроса, все объединенные ячейки будут перечислены во всплывающем диалоговом окне. Смотрите скриншот:
Выберите и подсчитайте все объединенные ячейки с помощью Kutools for Excel
Kutools for Excel's Выбрать объединенные ячейки Инструмент поможет вам идентифицировать, найти и выбрать все объединенные ячейки в выделении одним щелчком мыши.
1. Выберите диапазон данных, в котором вы хотите выделить объединенные ячейки.
2. Нажмите Кутулс > Выберите > Выбрать объединенные ячейки, см. снимок экрана:
3. И все объединенные ячейки в выделении были выбраны сразу, и количество объединенных ячеек также подсчитывается, см. Снимок экрана:
Лучшие инструменты для работы в офисе
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма .
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон .
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы . Предотвращение дублирования ячеек; Сравнить диапазоны .
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор .
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули , Флажки и многое другое .
- Извлечь текст , Добавить текст, Удалить по позиции, Удалить пробел ; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии .
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом .
- Комбинируйте книги и рабочие листы ; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов ; Пакетное преобразование xls, xlsx и PDF . Pivot Table Grouping by week number, day of week and more. Show Unlocked, Locked Cells by different colors; Highlight Cells That Have Formula/Name . -->
- Более 300 мощных функций . Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint , Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
У меня есть Excel 12.3.6 для Mac, и он часто берет на себя объединение ячеек. Тогда я не могу сортировать, не идентифицируя и не объединяя каждую объединенную ячейку. В большой таблице это нецелесообразно. Должна быть возможность использовать кнопку «Объединить» на панели инструментов, чтобы разъединить все ячейки в выбранном диапазоне, а не по одной за раз! У кого-то еще есть такая проблема? или еще лучше, решение?
Как подсчитать объединенные ячейки в выбранном диапазоне в Excel?
Обычно вы предпочитаете объединять все ячейки с одинаковыми значениями в диапазоне в Excel. Но в некоторых случаях может потребоваться подсчитать все объединенные ячейки в выбранном диапазоне. Как с этим бороться? В этой статье будут представлены два метода быстрого подсчета объединенных ячеек в Excel.
Kutools for Excel's Merge cells and Unmerge cells utilities can quickly merge all cells with same values at once, and unmerge cells and fill down values in Excel.
Kutools for Excel includes more than 300 handy Excel tools. Free to try with no limitation in 60 days. Read More Download the free trial now
Подсчет объединенных ячеек в диапазоне в Excel с кодом VBA
1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и скопируйте VBA в модуль.
VBA: подсчет объединенных ячеек в диапазоне
3. Сохраните код, закройте окно и введите эту формулу. = CountMerged (A1: G10) (диапазон A1: G10 - это диапазон, из которого вы хотите подсчитать объединенные ячейки, вы можете изменить его по своему усмотрению) в пустую ячейку и нажмите Enter кнопку на клавиатуре. Затем подсчитанный результат отображается в ячейке, см. Снимок экрана:
Подсчет объединенных ячеек в диапазоне в Excel одним щелчком мыши
Здесь я покажу вам быстрый способ подсчета объединенных ячеек в диапазоне одним щелчком мыши с Выберите объединенные ячейки полезности Kutools for Excel. Пожалуйста, сделайте следующее.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Выберите диапазон с объединенными ячейками, который вы хотите подсчитать. А затем нажмите Кутулс > Выберите > Выбрать объединенные ячейки. Смотрите скриншот:
2. Затем Kutools for Excel диалоговое окно всплывает с общим количеством объединенных ячеек, перечисленных внутри. Пожалуйста, нажмите на OK кнопка. Затем сразу выбираются все объединенные ячейки в выбранном диапазоне. Смотрите скриншот:
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Как выбрать последнюю ячейку с данными в строке / столбце в Excel?
В Excel вы можете использовать горячие клавиши - Ctrl + End, чтобы перейти к последней использованной ячейке активного листа. Но теперь, если вы хотите выбрать последнюю ячейку с данными в указанной строке или столбце, нет прямых методов, которые могут решить эту проблему. Из этого туториала Вы узнаете, как быстро выбрать последнюю ячейку с данными в определенной строке или столбце в Excel.
Выберите последнюю ячейку с данными в последнем столбце / строке с помощью Kutools for Excel
Выберите последнюю ячейку с данными в столбце / строке с VBA
В Excel нет других методов, которые помогут вам выбрать последнюю ячейку с данными в строке или столбце, кроме кода VBA. Но с помощью приведенного ниже VBA вы можете указать только расположение последней ячейки в столбце.
1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, затем скопируйте и вставьте ниже кода VBA во всплывающий Модули окно.
VBA: выберите последнюю ячейку с данными в определенном столбце.
Внимание: A в коде означает, что он найдет последнюю ячейку с данными в столбце A, и вы можете изменить ее в зависимости от ваших потребностей.
3. Нажмите Run или F5 ключа для запуска VBA, затем появилось диалоговое окно, в котором сообщалось, где находится последняя ячейка столбца.
Выберите последнюю ячейку с данными в последнем столбце / строке с помощью Kutools for Excel
Если вы установили Kutools for Excel на вашем компьютере есть функция под названием Выбрать последние ячейки, он может выбрать последнюю ячейку с данными в последнем столбце или строке.
После бесплатная установка Kutools for Excel, сделайте следующее:
Включите рабочий лист, на котором вы хотите выбрать последнюю ячейку с данными, и нажмите Кутулс > Выберите > Выбрать последние ячейки. Смотрите скриншот:
Если вы хотите выбрать последнюю ячейку с данными в последней строке, вы можете применить Выбрать последние ячейки > Последняя строка. Смотрите скриншоты:
Выберите последнюю ячейку с данными в последнем столбце, нажмите Выбрать последние ячейки > Последний столбец. Смотрите скриншоты:
Читайте также: