Como usar o método de célula especial?
No VBA, o método de células especiais permite selecionar uma célula ou intervalo de células de um tipo específico e um tipo de valor específico. Digamos que você queira saber que no intervalo A1:A10, quais células possuem uma fórmula e são numeradas como valor? Bem, você pode conseguir esse resultado com o método SpecialCells.
Use o método de células especiais em VBA
Aqui escrevemos o código para descobrir o endereço da última célula usada no intervalo A1:A10. Observe que no método de célula especial existem dois argumentos, um dos quais é obrigatório e o outro opcional.
- Primeiro, declare uma variável como um intervalo para armazenar o endereço da célula retornado pelo código.
- Depois disso, consulte o intervalo e use o método “SpecialCells” onde você precisa especificar o argumento “Type” com “xlCellTypeLastCell”.
- A seguir, defina esta linha especial de código de célula para a variável que você definiu na primeira etapa.
- A partir daqui, você precisa usar uma caixa de mensagem VBA para obter o endereço da célula retornada pelo método de célula especial.
- Ao final, use a propriedade address com a variável para obter o endereço da última célula do tipo.
Aqui está o código completo.
Dim myRng As Range Set myRng = Range("A1:A10").SpecialCells(xlCellTypeLastCell) MsgBox myRng.Address
Agora, ao executar este código, ele mostrará uma caixa de mensagem com o endereço da última célula usada (digitada). Então aqui no meu caso usei o celular A10 e o mesmo recebi na caixa de mensagem.
Selecione células com notas
No Excel, os antigos “Comentários” agora são “Notas”. Quando você escreve código para selecionar comentários, ele seleciona as notas que você possui dentro do intervalo especificado. Considere o seguinte código.
Dim myRng As Range Set myRng = _ Range("A1:A10").SpecialCells(xlCellTypeComments) myRng.Select
Use os dois argumentos
Como eu disse anteriormente, você tem dois argumentos para o método SpecialCells. Agora vamos ver como você pode usar os dois argumentos para selecionar células que possuem uma fórmula e que o valor retornado pela fórmula é um valor lógico.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeFormulas, xlLogical) myRng.Select
Agora, quando executo o código acima, ele seleciona células do intervalo A1 a A11, onde tenho fórmulas e valores lógicos.
Selecione células com formatação condicional
Range("A1:A11").SpecialCells(xlCellTypeSameFormatConditions) Range("A1:A11").SpecialCells(xlCellTypeAllFormatConditions)
Selecione células visíveis
E você também pode selecionar o visível usando a constante “xlCellTypeVisible”. Considere o seguinte código.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeVisible) myRng.Select
Ou você também pode usar “12” como valor do argumento.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(12) myRng.Select
Células com validação de dados
Range("A1:A11").SpecialCells(xlCellTypeAllValidation) Range("A1:A11").SpecialCells(xlCellTypeSameValidation)