VBA ListObjects - Vejledning til ListObject Excel-tabeller i Excel VBA

Indholdsfortegnelse

Hvad er ListObjects i VBA?

I en tabel er normalt, hvad vi ser, et datasæt, men i VBA-terminologi er der meget mere, da der er rækkevidde for det samlede datalisteområde, kolonnen er kendt som listekolonnen, og rækken er kendt som listerækken og så videre , så for at få adgang til disse egenskaber har vi en indbygget funktion kendt som Listobjects, og som bruges sammen med regnearkfunktionen.

VBA ListObject er en måde at henvise til excel-tabellerne, mens du skriver VBA-koden. Ved at bruge VBA LISTOBJECTS kan vi oprette, slette bord, og helt kan vi lege med excel-tabeller i VBA-kode. Excel-tabeller er vanskelige, begyndere og endda i et omfang, brugere på mellemniveau har svært ved at arbejde med tabeller. Da denne artikel taler om henvisning til excel-tabeller i VBA-kodning, er det bedre, at du har god viden om tabeller i excel.

Når dataene konverteres til tabeller, arbejder vi ikke længere med en række celler. Vi skal snarere arbejde med tabelområder, så i denne artikel viser vi dig, hvordan du arbejder med excel-tabeller for at skrive VBA-koder effektivt.

Opret tabelformat ved hjælp af ListObjects i Excel VBA

Se f.eks. Nedenstående Excel-data.

Ved hjælp af VBA ListObject-koden opretter vi et tabelformat til disse data.

  • For disse data skal vi først finde ud af, hvad der er den sidst anvendte række og kolonne, så definer to variabler for at finde dette.

Kode:

Underliste_Objekter_eksempel1 () Dim LR så lang Dim LC som lang ende Sub
  • Brug nedenstående kode for at finde den sidst anvendte række og kolonne.

Kode:

LR = Celler (Rækker.Tælling, 1) .End (xlUp) .Række LC = Celler (1, Kolonner.Tælling) .End (xlToLeft) .Kolonne
  • Definer nu en yderligere variabel, der indeholder referencen til dataene.

Kode:

Dæmp Rng som rækkevidde
  • Indstil nu henvisningen til denne variabel ved hjælp af nedenstående kode.

Kode:

Indstil Rng = celler (1, 1). Størrelse (LR, LC)

Nu skal vi bruge VBA "ListObject.Add" -metoden til at oprette en tabel, og nedenunder er syntaksen for den samme.

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

Kilde: Dette er intet for hvilket celleområde vi indsætter tabellen. Så vi kan levere to argumenter her, dvs. "xlSrcRange" og "xlSrcExternal."

XlListObjectHasHeaders: Hvis tabellen, der indsætter data, har overskrifter eller ej. Hvis ja, kan vi give “xlYes”. Hvis ikke, kan vi levere "xlNo."

Destination: Dette er intet andet end vores dataområde.

Tabelstil: Hvis du vil anvende en hvilken som helst tabelstil, kan vi levere typografier.

  • Ok, nu i det aktive ark opretter vi tabellen, så nedenstående kode vil oprette en tabel for os.

Kode:

Dæmp Ws som regneark Sæt Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Efter dette er vi nødt til at give et navn til denne tabel.

Kode:

Ws.ListObjects (1) .name = "EmpTable"
  • Nedenfor er den fulde kode til din reference.

Kode:

Underliste_Objekter_eksempel1 () Dim LR så lang Dim LC som lang LR = celler (rækker.Tælling, 1) .End (xlUp). Række LC = celler (1, kolonner.Tælling) .End (xlToLeft) .Kolonne dim Rng som rækkevidde Indstil Rng = Celler (1, 1). Størrelse (LR, LC) Dim Ws som regneark Sæt Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, lad os køre koden og se magien.

Det har oprettet tabellen til de nævnte data og givet tabelnavnet som "EmpTable."

Formatering af Excel-tabeller med VBA ListObjects

Når Excel-tabellen er oprettet, kan vi arbejde med tabeller ved hjælp af VBA ListObject-samlingen.

  • Definér først variablen som "ListObject."

Kode:

Sub List_Objects_Example2() Dim MyTable As ListObject End Sub
  • Now set the reference to this variable by using the table name.

Code:

Sub List_Objects_Example2() Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects("EmpTable") End Sub

Now the variable “MyTable” holds the reference for the table “EmpTable.”

  • Enter the variable name and put a dot to see the properties and methods of the VBA ListObject.

For example, if we want to select the entire table, then we need to use the “Range” object, and under this, we need to use the “Select” method.

Code:

MyTable.Range.Select

This would select the entire data table, including the heading.

  • If you want to select only the contents of the table without headers, then we need to use “DataBodyRange.”

Code:

MyTable.DataBodyRange.Select

Like this, we can play around with tables.

  • Nedenfor er listen over aktivitetskoder til din reference.

Kode:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'To Select data range without headers MyTable.Range.Select' To Select data range with headers MyTable.HeaderRowRange.Select 'To Vælg tabelhovedrækker MyTable.ListColumns (2) .Range.Select 'For at vælge kolonne 2 inklusive header MyTable.ListColumns (2) .DataBodyRange.Select' For at vælge kolonne 2 uden header End Sub

På denne måde kan vi bruge “ListObject” -samlingen til at lege med excel-tabeller.

Ting at huske

  • VBA ListObject er samlingen af ​​objekter, der refererer til excel-tabeller.
  • For at få adgang til ListObject-samlingen først skal vi specificere, hvilket regneark vi henviser til.

Interessante artikler...