Detectar células mescladas no VBA do Excel com MergeArea
Pergunta
Eu estou tendo um problema com um presente - eu tenho para detectar horizontalmente e verticalmente células mescladas a partir de uma tabela do excel.Tenho para armazenar a primeira célula coords, e o comprimento que a nova área.Eu iterar através da tabela com dois ciclos, linha por linha.
Como posso usar a propriedade MergeArea para detectar intercalado e não intercalado áreas?Se a célula não for intercalada, provavelmente deve retornar vazio faixa, no entanto, este:
"Se currentRange É Nada,"
não está funcionando.Qualquer idéias?Muito obrigado.
Solução
Existem vários útil bits de código para isso.
Coloque o cursor em um mesclado célula e faça as seguintes perguntas no Immidiate Janela:
É activecell uma célula mesclada?
? Activecell.Mergecells
True
Quantas células são integradas?
? Activecell.MergeArea.Cells.Count
2
Quantas colunas são mescladas?
? Activecell.MergeArea.Columns.Count
2
Quantas linhas são integradas?
? Activecell.MergeArea.Rows.Count
1
O que é mesclado intervalo de endereço?
? activecell.MergeArea.Address
$F$2:$F$3
Outras dicas
Ao trabalhar com as células selecionadas como mostrado por @tbur pode ser útil, também não é a única opção disponível.
Você pode usar Faixa (a) assim:
If Worksheets("Sheet1").Range("A1").MergeCells Then
Do something
Else
Do something else
End If
Ou:
If Worksheets("Sheet1").Range("A1:C1").MergeCells Then
Do something
Else
Do something else
End If
Como alternativa, você pode usar Células():
If Worksheets("Sheet1").Cells(1, 1).MergeCells Then
Do something
Else
Do something else
End If