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

Innholdsfortegnelse

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.

Interessante artikler...