Hva er ListObjects i VBA?
I en tabell er det normalt sett et datasett, men i VBA-terminologi er det mye mer, for det er rekkevidde for det totale datalisteområdet, kolonnen er kjent som listekolonnen og raden er kjent som listen og så videre , så for å få tilgang til disse egenskapene har vi en innebygd funksjon kjent som Listobjects og som brukes med regnearkfunksjonen.
VBA ListObject er en måte å referere til excel-tabellene mens du skriver VBA-koden. Ved å bruke VBA LISTOBJECTS kan vi opprette, slette tabeller, og totalt kan vi leke med excel-tabeller i VBA-kode. Excel-tabeller er vanskelige, nybegynnere, og til og med i en viss grad, brukere på mellomnivå synes det er vanskelig å jobbe med bord. Siden denne artikkelen snakker om referanse til excel-tabeller i VBA-koding, er det bedre at du har god kunnskap om tabeller i excel.
Når dataene konverteres til tabeller, jobber vi ikke lenger med en rekke celler. Vi må heller jobbe med tabellområder, så i denne artikkelen vil vi vise deg hvordan du kan jobbe med excel-tabeller for å skrive VBA-koder effektivt.

Opprett tabellformat ved hjelp av ListObjects i Excel VBA
Se for eksempel på excel-dataene nedenfor.

Ved å bruke VBA ListObject-koden vil vi lage et tabellformat for disse dataene.
- For disse dataene først må vi finne hva som er den sist brukte raden og kolonnen, så definer to variabler for å finne dette.
Kode:
Underliste_Objekter_eksempel1 () Dim LR så lang dim LC som lang slutt Sub

- Bruk koden nedenfor for å finne den sist brukte raden og kolonnen.
Kode:
LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column

- Definer nå en variabel til for å holde referansen til dataene.
Kode:
Dim Rng As Range

- Sett nå referansen til denne variabelen ved å bruke koden nedenfor.
Kode:
Sett Rng = celler (1, 1). Størrelse (LR, LC)

Nå må vi bruke VBA "ListObject.Add" -metoden for å lage en tabell, og nedenfor er syntaksen for den samme.
ListObject.Add (Source, XlListObjectHasHeaders, Destination, TableStyleName)
Kilde: Dette er ingenting for hvilket celleområde vi setter inn tabellen. Så vi kan gi to argumenter her, dvs. "xlSrcRange" og "xlSrcExternal."
XlListObjectHasHeaders: Hvis tabellen som setter inn data har overskrifter eller ikke. Hvis ja, kan vi gi "xlYes." Hvis ikke, kan vi gi "xlNo."
Destinasjon: Dette er ingenting annet enn vårt dataserie.
Tabellstil: Hvis du vil bruke hvilken som helst bordstil, kan vi tilby stiler.
- Ok, nå i det aktive arket lager vi tabellen, så koden nedenfor vil opprette en tabell for oss.
Kode:
Demp Ws som regnearksett Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

- Etter dette må vi gi et navn til denne tabellen.
Kode:
Ws.ListObjects (1) .name = "EmpTable"

- Nedenfor er den fullstendige koden for din referanse.
Kode:
Underliste_objekter_eksempel1 () Dim LR så lang dim LC som lang LR = celler (rader.tall, 1). Slutt (xlUp). Rad LC = celler (1, kolonner.antall). Slutt (xlToLeft). Kolonne dim. Rng som område Sett 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, la oss kjøre koden og se magien.

Den har laget tabellen til de nevnte dataene og gitt tabellnavnet som "EmpTable."
Formatering av Excel-tabeller med VBA ListObjects
Når Excel-tabellen er opprettet, kan vi jobbe med tabeller ved å bruke VBA ListObject-samlingen.
- Først definerer du variabelen som "ListObject."
Kode:
Sub List_Objects_Example2 () Dim MyTable As ListObject End Sub

- Sett nå referansen til denne variabelen ved å bruke tabellnavnet.
Kode:
Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub

Nå inneholder variabelen “MyTable” referansen for tabellen “EmpTable.”
- Skriv inn variabelnavnet og sett en prikk for å se egenskapene og metodene til VBA ListObject.

For eksempel, hvis vi vil velge hele tabellen, må vi bruke "Range" -objektet, og under dette må vi bruke "Select" -metoden.
Kode:
MyTable.Range.Velg

Dette vil velge hele datatabellen, inkludert overskriften.
- Hvis du bare vil velge innholdet i tabellen uten overskrifter, må vi bruke "DataBodyRange."
Kode:
MyTable.DataBodyRange.Select

Slik kan vi leke med bord.
- Nedenfor er listen over aktivitetskoder som referanse.
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 Velg topptekstrader for MyTable.ListColumns (2) .Range.Select 'For å velge kolonne 2 inkludert header MyTable.ListColumns (2) .DataBodyRange.Select' For å velge kolonne 2 uten header End Sub
Slik kan vi bruke "ListObject" -samlingen til å leke med excel-tabeller.
Ting å huske
- VBA ListObject er samlingen av objekter som refererer til Excel-tabeller.
- For å få tilgang til ListObject-samlingen først, må vi spesifisere hvilket regneark vi henviser til er.