¿cómo utilizar el método de celda especial?
En VBA, el método de celdas especiales le permite seleccionar una celda o rango de celdas de un tipo específico y un tipo de valor específico. Digamos que quieres saber que en el rango A1:A10, ¿qué celdas tienen una fórmula y están numeradas como valor? Bueno, puedes lograr este resultado con el método SpecialCells.
Utilice el método de celdas especiales en VBA
Aquí escribimos código para averiguar la dirección de la última celda utilizada en el rango A1:A10. Tenga en cuenta que en el método de celda especial hay dos argumentos, uno de los cuales es obligatorio y el otro opcional.
- Primero, declare una variable como un rango para almacenar esta dirección de celda devuelta por el código.
- Después de eso, consulte el rango y use el método «SpecialCells» donde debe especificar el argumento «Tipo» con «xlCellTypeLastCell».
- A continuación, establezca esta línea especial de código de celda en la variable que definió en el primer paso.
- Desde aquí, debe usar un cuadro de mensaje de VBA para obtener la dirección de la celda devuelta mediante el método de celda especial.
- Al final, use la propiedad de dirección con la variable para obtener la dirección de la celda del último tipo.
Aquí está el código completo.
Dim myRng As Range Set myRng = Range("A1:A10").SpecialCells(xlCellTypeLastCell) MsgBox myRng.Address
Ahora, cuando ejecute este código, le mostrará un cuadro de mensaje con la dirección de la celda que se usó (escribió) por última vez. Entonces aquí en mi caso usé la celda A10 y la misma recibí en el cuadro de mensaje.
Seleccionar celdas con notas
En Excel, los antiguos «Comentarios» ahora son «Notas». Cuando escribe código para seleccionar comentarios, seleccionará las notas que tenga dentro del rango especificado. Considere el siguiente código.
Dim myRng As Range Set myRng = _ Range("A1:A10").SpecialCells(xlCellTypeComments) myRng.Select
Utilice ambos argumentos
Como dije antes, tienes dos argumentos para el método SpecialCells. Ahora veamos cómo puedes usar los dos argumentos para seleccionar celdas que tengan una fórmula y que el valor devuelto por la fórmula sea un valor lógico.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeFormulas, xlLogical) myRng.Select
Ahora, cuando ejecuto el código anterior, selecciona celdas del rango A1 a A11 donde tengo fórmulas y valores lógicos.
Seleccionar celdas con formato condicional
Range("A1:A11").SpecialCells(xlCellTypeSameFormatConditions) Range("A1:A11").SpecialCells(xlCellTypeAllFormatConditions)
Seleccionar celdas visibles
Y también puedes seleccionar lo visible usando la constante “xlCellTypeVisible”. Considere el siguiente código.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeVisible) myRng.Select
O también puede utilizar «12» como valor del argumento.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(12) myRng.Select
Celdas con validación de datos
Range("A1:A11").SpecialCells(xlCellTypeAllValidation) Range("A1:A11").SpecialCells(xlCellTypeSameValidation)