VBA ListObjects | Guia de les taules Excel de ListObject a Excel VBA

Què són ListObjects a VBA?

Normalment, en una taula, el que veiem és un conjunt de dades, però a la terminologia de VBA hi ha molt més, com ara que hi ha un rang del rang total de la llista de dades; , per tant, per accedir a aquestes propietats tenim una funció incorporada coneguda com a objectes de llista i que s'utilitza amb la funció de full de càlcul.

VBA ListObject és una manera de referir-se a les taules Excel mentre s’escriu el codi VBA. Mitjançant l’ús de VBA LISTOBJECTS podem crear, eliminar taules i, totalment, podem jugar amb taules Excel en codi VBA. Les taules d'Excel són complicades, per a principiants i fins i tot fins a un grau mitjà, als usuaris els costa treballar amb les taules. Com que en aquest article es parla de fer referència a les taules Excel a la codificació VBA, és millor que tingueu un bon coneixement sobre les taules Excel.

Quan les dades es converteixen en taules, ja no treballem amb un interval de cel·les, sinó que hem de treballar amb intervals de taules, de manera que en aquest article us mostrarem com treballar amb taules Excel per escriure codis VBA de manera eficient.

Creeu format de taula mitjançant ListObjects a Excel VBA

Per exemple, mireu les dades Excel següents.

Mitjançant el codi VBA ListObject crearem un format de taula per a aquestes dades.

Podeu descarregar aquesta plantilla Excel de VBA ListObjects aquí - Plantilla Excel de VBA ListObjects
  • Per a aquestes dades, primer hem de trobar quina és l’última fila i columna utilitzades, així que definiu dues variables per trobar-la.

Codi:

 Sub Llista_Objectes_Exemple1 () Dim LR Tan llarg Dim LC Tan llarg Sub 

  • Per trobar l'última fila i columna utilitzades, utilitzeu el codi següent.

Codi:

LR = Cèl·lules (files.Compte, 1). Final (xlUp). Fila LC = Cèl·lules (1, columnes.Compte). Final (xlToLeft). Columna

  • Ara definiu una variable més per contenir la referència de les dades.

Codi:

 Redueix com a rang 

  • Ara configureu la referència a aquesta variable mitjançant el codi següent.

Codi:

 Estableix Rng = Cèl·lules (1, 1). Redimensiona (LR, LC)

Ara hem d’utilitzar el mètode VBA “ListObject.Add” per crear una taula i a continuació es mostra la sintaxi de la mateixa.

ListObject.Add (Source, XlListObjectHasHeaders, Destination, TableStyleName)

Font: Això no és res per a quin rang de cel·les inserim la taula. Així doncs, podem subministrar dos arguments aquí, és a dir, "XlSrcRange" i "XlSrcExternal".

XlListObjectHasHeaders: Si la taula que insereix dades té capçaleres o no. En cas afirmatiu, podem proporcionar-ho "XlSí" si no ho podem proporcionar "XlNo".

Destinació: Això no és més que el nostre rang de dades.

Estil de taula: Si voleu aplicar qualsevol estil de taula, us podem proporcionar estils.

  • D’acord, ara al full actiu estem creant la taula, de manera que a sota del codi es crearia una taula per a nosaltres.

Codi:

 Atenuar Ws com a conjunt de fulls de treball Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

  • Després d'això, hem de donar un nom a aquesta taula.

Codi:

Ws.ListObjects (1) .name = "EmpTable"

  • A continuació es mostra el codi complet per a la vostra referència.

Codi:

 Sub List_Objects_Example1 () Dim LR Long Long Dim LC Long Long LR = Cel·les (files.Compte, 1). Final (xlUp). Fila LC = Cel·les (1, Columns.Count). Final (xlToLeft) .Column Dim Rng As Range Estableix Rng = Cèl·lules (1, 1). Redimensiona (LR, LC) Dim Ws com a full de treball Establir Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destinació: = Rng Ws.ListObjects (1) .name = " EmpTable "Finalitzar sub 

D’acord, executem el codi i veiem la màgia.

S'ha creat la taula amb les dades esmentades i s'ha donat el nom de la taula com a "EmpTable".

Format de taules d'Excel amb VBA ListObjects

Un cop creada la taula d'Excel, podem treballar amb taules mitjançant la col·lecció vba ListObject.

  • En primer lloc, definiu la variable com a "ListObject".

Codi:

 Sub List_Objects_Example2 () Atenua la meva taula com a ListObject End Sub 

  • Ara configureu la referència a aquesta variable mitjançant el nom de la taula.

Codi:

 Sub List_Objects_Example2 () Atenueu MyTable com a ListObject Establir MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub 

Ara la variable "MyTable" conté la referència per a la taula "EmpTable".

  • Introduïu el nom de la variable i poseu un punt per veure les propietats i els mètodes del VBA ListObject.

Per exemple, si volem seleccionar tota la taula, hem d’utilitzar l’objecte “Range” i, en aquest sentit, hem d’utilitzar el mètode “Select”.

Codi:

MyTable.Range.Select

Això seleccionaria tota la taula de dades, inclòs el títol.

  • Si voleu seleccionar només el contingut de la taula sense capçaleres, hem d'utilitzar "DataBodyRange".

Codi:

MyTable.DataBodyRange.Select

Així, podem jugar amb taules.

  • A continuació es mostra la llista de codis d'activitat per a la vostra referència.

Codi:

 Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Per seleccionar l'interval de dades sense capçaleres MyTable.Range. Seleccioneu les files de capçalera de la taula MyTable.ListColumns (2) .Range.Select 'Per seleccionar la columna 2 inclosa la capçalera MyTable.ListColumns (2) .DataBodyRange.Select' Per seleccionar la columna 2 sense capçalera End Sub 

Així, podem utilitzar la col·lecció "ListObject" per jugar amb les taules Excel.

Coses que cal recordar

  • VBA ListObject és la col·lecció d'objectes per fer referència a les taules Excel.
  • Per accedir a la col·lecció ListObject primer cal especificar a quin full de treball ens referim.