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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top