Обнаружение слитых клеток в VBA Excel с Mergearea
Вопрос
У меня есть совершенно проблема с этим - я должен обнаружить горизонтально и вертикально слитые клетки из таблицы Excel.Я должен хранить первые координаты для ячейки, а также протяженностью объединенного района.Я повторяю через таблицу с двумя циклами, линиями по линии.
Как я могу использовать свойство Mergearea для обнаружения объединенных и не объединенных областей? Если ячейка не объединена, она, вероятно, должна вернуть пустой диапазон, однако, это:
"Если createRange ничем, то"
вообще не работает.Любые идеи? Большое спасибо.
Решение
Для этого есть несколько полезных битов кода.
Поместите курсор в A объединенные ячейки и задайте эти вопросы в окне immidiate:
- это ActiveCell объединенная клетка?
? Activecell.Mergecells
True
.
Сколько ячеек объединено?
? Activecell.MergeArea.Cells.Count
2
.
Сколько столбцов объединены?
? Activecell.MergeArea.Columns.Count
2
.
Сколько рядов объединено?
? Activecell.MergeArea.Rows.Count
1
.
Какой слиянный диапазон адреса?
? activecell.MergeArea.Address
$F$2:$F$3
. Другие советы
Во время работы с выбранными ячейками, как показано на @TBUR, может быть полезным, это также не единственная опция доступна.
Вы можете использовать диапазон () , как так:
If Worksheets("Sheet1").Range("A1").MergeCells Then
Do something
Else
Do something else
End If
.
или:
If Worksheets("Sheet1").Range("A1:C1").MergeCells Then
Do something
Else
Do something else
End If
.
попеременно, вы можете использовать ячейки () :
If Worksheets("Sheet1").Cells(1, 1).MergeCells Then
Do something
Else
Do something else
End If
.