ListObjects de VBA - Guía de tablas de Excel ListObject en Excel VBA

Tabla de contenido

¿Qué son ListObjects en VBA?

En una tabla normalmente lo que vemos es un conjunto de datos, pero en la terminología de VBA hay muchos más, como hay un rango del rango total de la lista de datos, la columna se conoce como la columna de la lista y la fila se conoce como la fila de la lista, etc. , así que para acceder a estas propiedades tenemos una función incorporada conocida como Listobjects y que se usa con la función de hoja de trabajo.

VBA ListObject es una forma de hacer referencia a las tablas de Excel mientras se escribe el código VBA. Al usar VBA LISTOBJECTS, podemos crear, eliminar tablas y totalmente podemos jugar con tablas de Excel en código VBA. Las tablas de Excel son complicadas, principiantes e incluso, hasta cierto punto, los usuarios de nivel intermedio tienen dificultades para trabajar con tablas. Dado que este artículo habla sobre la referencia a tablas de Excel en la codificación VBA, es mejor que tenga un buen conocimiento sobre las tablas en Excel.

Cuando los datos se convierten en tablas, ya no trabajamos con un rango de celdas. Más bien, necesitamos trabajar con rangos de tablas, por lo que en este artículo, le mostraremos cómo trabajar con tablas de Excel para escribir códigos VBA de manera eficiente.

Crear formato de tabla usando ListObjects en Excel VBA

Por ejemplo, mire los datos de Excel a continuación.

Usando el código ListObject de VBA, crearemos un formato de tabla para estos datos.

  • Para estos datos primero, necesitamos encontrar cuál es la última fila y columna utilizada, así que defina dos variables para encontrar esto.

Código:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Para encontrar la última fila y columna utilizada, utilice el siguiente código.

Código:

LR = Celdas (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Ahora defina una variable más para contener la referencia de los datos.

Código:

Dim Rng como rango
  • Ahora establezca la referencia a esta variable utilizando el siguiente código.

Código:

Establecer Rng = Celdas (1, 1). Redimensionar (LR, LC)

Ahora necesitamos usar el método VBA “ListObject.Add” para crear una tabla, y a continuación se muestra la sintaxis de la misma.

ListObject.Add (Fuente, XlListObjectHasHeaders, Destino, TableStyleName)

Fuente: Esto no es nada para qué rango de celdas estamos insertando la tabla. Entonces podemos proporcionar dos argumentos aquí, es decir, "xlSrcRange" y "xlSrcExternal".

XlListObjectHasHeaders: si la tabla que inserta datos tiene encabezados o no. Si es así, podemos proporcionar "xlYes". De lo contrario, podemos proporcionar "xlNo".

Destino: esto no es más que nuestro rango de datos.

Estilo de tabla: si desea aplicar cualquier estilo de tabla, podemos proporcionar estilos.

  • Ok, ahora en la hoja activa, estamos creando la tabla, por lo que el siguiente código crearía una tabla para nosotros.

Código:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Después de esto, necesitamos darle un nombre a esta tabla.

Código:

Ws.ListObjects (1) .name = "EmpTable"
  • A continuación se muestra el código completo para su referencia.

Código:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Set Rng = Cells (1, 1) .Resize (LR, LC) Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, ejecutemos el código y veamos la magia.

Ha creado la tabla con los datos mencionados y le ha dado el nombre de la tabla como "EmpTable".

Formateo de tablas de Excel con ListObjects VBA

Una vez que se ha creado la tabla de Excel, podemos trabajar con tablas usando la colección VBA ListObject.

  • Primero, defina la variable como "ListObject".

Código:

Sub List_Objects_Example2 () Atenuar MyTable como ListObject End Sub
  • Ahora establezca la referencia a esta variable usando el nombre de la tabla.

Código:

Sub List_Objects_Example2 () Atenuar MyTable como ListObject Establecer MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub

Ahora, la variable "MyTable" contiene la referencia para la tabla "EmpTable".

  • Ingrese el nombre de la variable y coloque un punto para ver las propiedades y métodos de VBA ListObject.

Por ejemplo, si queremos seleccionar toda la tabla, entonces necesitamos usar el objeto "Rango", y debajo de este, necesitamos usar el método "Seleccionar".

Código:

MyTable.Range.Select

Esto seleccionaría la tabla de datos completa, incluido el encabezado.

  • Si desea seleccionar solo el contenido de la tabla sin encabezados, entonces debemos usar "DataBodyRange".

Código:

MyTable.DataBodyRange.Select

De esta forma, podemos jugar con las mesas.

  • A continuación se muestra la lista de códigos de actividad para su referencia.

Código:

Sub List_Objects_Example2 () Atenuar MyTable como ListObject Establecer MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Para seleccionar rango de datos sin encabezados MyTable.Range.Select' Para seleccionar rango de datos con encabezados MyTable.HeaderRowRange. Seleccionar filas de encabezado de tabla MyTable.ListColumns (2) .Range.Select 'Para seleccionar la columna 2, incluido el encabezado MyTable.ListColumns (2) .DataBodyRange.Select' Para seleccionar la columna 2 sin encabezado End Sub

Así, podemos usar la colección "ListObject" para jugar con tablas de Excel.

Cosas para recordar

  • VBA ListObject es la colección de objetos para hacer referencia a tablas de Excel.
  • Para acceder primero a la colección ListObject, necesitamos especificar a qué hoja de trabajo nos referimos.

Articulos interesantes...