VBA XLUP

Excel VBA XLUP

Una cosa que debe tener en cuenta al escribir código VBA es lo que hace con la hoja de trabajo normal y también puede replicar lo mismo en VBA. Una de esas palabras clave en la codificación VBA es "XLUP", en este artículo le mostraremos qué es esta palabra clave en la codificación VBA y cómo usarla en la codificación.

¿Cómo utilizar VBA XLUP en la codificación?

Los siguientes son ejemplos de Excel VBA XLUP.

Puede descargar esta plantilla de Excel VBA XLUP aquí - Plantilla de Excel VBA XLUP

Ejemplo n. ° 1: mover celdas a la posición eliminada de las celdas

Por ejemplo, observe el escenario de los datos a continuación, donde debe eliminar los datos de las celdas coloreadas y más los datos de las filas de abajo a los datos de arriba.

Una forma de eliminar esto en la hoja de trabajo es seleccionar aquellas celdas en las que simplemente podemos eliminar toda la fila. Pero aquí las situaciones son un poco complicadas porque tengo celdas coloreadas en la Tabla 1 cuando eliminamos toda la fila, incluso las filas de la Tabla 2 también se eliminan, pero no queremos que esto suceda, solo necesitamos eliminar las filas coloreadas y las celdas debajo deben moverse subir la posición de las celdas eliminadas.

Primero, seleccione las celdas coloreadas y presione Ctrl + Símbolo menos (-) para abrir la opción "Eliminar".

Tecla de acceso directo para abrir la opción "Eliminar"

En la ventana de opciones de "eliminar", tenemos cuatro opciones, podemos elegir la acción según nuestro requisito. Dado que necesitamos mover nuestras celdas hacia arriba para la posición de esas celdas eliminadas, elija "Shift Cell Up".

Tendremos filas de la Tabla 2 sin cambios.

Esta acción en VBA requiere el uso de la propiedad "XLUP" para realizar un conjunto similar de acciones en VBA. Ahora vaya a la ventana del editor de VBA e inicie su nombre de macro.

Código:

 Sub XLUP_Example () End Sub 

Primero suministre el RANGO de celda que se incluirá en esta operación. En esta acción, las primeras celdas que se eliminarán y subirán son las celdas “A5: B5”.

Código:

 Sub XLUP_Example () Rango ("A5: B5") End Sub 

Para este rango de celdas, seleccione el método "Eliminar".

Código:

 Sub XLUP_Example () Range ("A5: B5"). Eliminar End Sub 

Como puede ver para el método "Delete", tenemos un argumento opcional como [Shift], para este argumento necesitamos ingresar el argumento como "XLUP".

Código:

 Sub XLUP_Example () Range ("A5: B5"). Eliminar turno: = xlUp End Sub 

Ahora puede ejecutar este código manualmente o mediante la tecla de acceso directo de Excel F5, para ver el resultado.

Como puede ver en la Tabla 1, hemos movido la fila número 6 a la 5ª fila y, por otro lado, la Tabla 2 (coloreada) no se modifica, por lo que al usar la opción “VBA XLUP” podemos hacer esta operación.

Ejemplo n. ° 2: buscar la última fila utilizada mediante XLUP

Imagina una situación en la que estás en la celda A20th (mira la imagen de abajo) y tu última celda utilizada es A14.

Ahora, si desea elegir la última celda utilizada (A14). ¿Cómo lo harás usando una tecla de atajo ???

Usaríamos Ctrl + Flecha arriba para movernos a la última celda utilizada desde la posición actual.

Tecla de acceso directo para pasar a la última celda utilizada 

Entonces, desde la celda actual, Ctrl + Flecha arriba seleccionó la última celda utilizada. De manera similar, en la codificación VBA usamos END (XLUP) para realizar lo mismo.

Ahora regrese a la ventana de codificación de VBA.

En esta ventana, realizaremos la tarea de buscar la última fila utilizada en la hoja de trabajo. Cree un nuevo subprocedimiento en la ventana de VBA.

Código:

 Sub XLUP_Example1 () End Sub 

Para almacenar el último número de fila utilizado. defina la variable como el tipo de datos VBA LONG.

Código:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long End Sub 

Ahora, para esta variable, asignaremos el último número de fila utilizado.

Código:

 Sub XLUP_Example1 () Dim Last_Row_Number Tan largo Last_Row_Number = End Sub 

Ahora use el objeto RANGE y abra este objeto.

Código:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Last_Row_Number = Rango (End Sub 

Ahora mencione la celda activa (A20) para el objeto RANGE .

Código:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Range ("A14"). Seleccione Last_Row_Number = Range ("A20") End Sub 

Ahora abra la propiedad END para la celda de rango proporcionada.

Código:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End( End Sub 

As you can see above, we have to arrow key options like “xlDown”, “xlToLeft”, “xlToRight”, “xlUp”. Since we are moving up from the A14 cell choose the “VBA XLUP” option.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp) End Sub 

After moving up from A14 cell we need to mention what we need to do since we need the last used row number I will use ROW property.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row End Sub 

Now for the message box assign the value of variable “Last_Row_Number”.

Code:

 Sub XLUP_Example1()  Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

So message box showing the last used row number as 14, so our last data used row number is A14 cell.

In this case, since data is very small we started from A20 cell but when the data is large we cannot say which cell to take into consideration first, in such cases we need to employ a different technique.

We need to use CELLS property, below is the example of the same.

Code:

 Sub XLUP_Example2() Dim Last_Row_Number As Long Last_Row_Number = Cells(Rows.Count, 1).End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

Instead of a RANGE object, I have used CELLS property. Let me explain this in detail to you.

ROW.COUNT this will count how many rows are there in column 1. What this will do is it will take into consideration of the last cell in the worksheet instead of random cell address, in the above case we have used A14 as the random cell address.

Things to Remember about VBA XLUP

  • XLUP is the word used in VBA code to replicate the action of the “Up Arrow” key in excel.
  • VBA XLUP is used to move from active cells to the above cell or last used cell.
  • XLUP is generally used along with END property in VBA.