En anteriores publicaciones vimos algunos de los comandos más útiles del lenguaje VBA. Ahora vamos a recordar algunos de los comandos más básicos para seleccionar celdas y rango de celdas.
Como ya sabremos si queremos seleccionar una celda concreta, por ejemplo “C1”, escribiremos en el editor: Cells(1, 3).Select Fijémonos que el orden es fila (1) y columna (3), alternativamente también podríamos utilizar el objeto Range que es más utilizado para referirse a un rango concreto más que a una única celda pero que igualmente es válido: Range(«C1»).Select Es muy importante que en este caso pongamos la dirección de la celda entrecomillada, de lo contrario se nos devolverá un mensaje de error.
Como ya hemos comentado, si lo que queremos es referirnos a un rango concreto de celdas utilizaremos Range, por ejemplo si queremos cortar el contenido de unas celdas y pegarlos en otras:
Range(«F2:H2»).Cut Destination:=Range(«C2:E2»)
Esta instrucción corta el contenido de F2:H2 y lo pega en C2:E2.
Para los casos en que queramos seleccionar todo una fila, por el ejemplo la fila 3, escribiríamos: Range(«4:4»).Select y si lo que queremos es una columna Range(«A:A»).Select Tampoco habrá problemas en seleccionar más de una fila o columna, por ejemplo podríamos escribir Range(«1:3»).Select para seleccionar las filas 1 hasta la 3 o si escribimos Range(«A:C»).Select seleccionaríamos las tres primeras columnas.
Por su parte, para seleccionar dos o más rangos concreto podemos escribir lo siguiente:
Application.Union(Range(«A3: E5»), Range(«F6: H11»)).Select
con ello se selecciona la unión de dos o más rangos especificados, similar a seleccionar y tener apretado tecla ctrl del teclado.
Pero, ¿qué pasa si el rango no está definido? Es decir, sabemos la celda donde empieza el rango pero no sabemos la celda que ocupará el último dato introducido. En estos casos no hace falta que tengamos que definir un rango excesivamente amplio para asegurarnos que se seleccionen todos los datos (por ejemplo, A1:A1048576) pues operar con un rango tan amplio ralentizaría la macro y Excel tardaría más en ejecutar el código. Para estos casos existe un comando que se encarga de indicar la última celda con datos, por ejemplo si quisiéramos seleccionar el rango de celdas desde A1 hasta el último dato de la columna A, escribiríamos lo siguiente:
Range(«A1», Range(«A1»).End(xlDown)).Select
Esta forma de seleccionar desde la celda A1 hasta la primer celda con datos desde arriba, similar a Ctrl + Shift + flecha hacia abajo. Por supuesto, si sustituimos Down por la dirección que queramos podremos seleccionar el rango en cualquier dirección que queramos.
Para cerrar este minitutorial, también podemos seleccionar dos más columnas o filas no contiguas de longitud variable:
Set a = Range(«A3», Range(«A3»).End(xlDown))
Set b = Range(«E12», Range(«E12»).End(xlDown))
Union(a, b).Select
Descubre más desde Asiento descuadrado
Suscríbete y recibe las últimas entradas en tu correo electrónico.