Objekti seznama VBA - Vodnik po seznam tabel Excel Excel v Excelu VBA

Kaj so ListObjects v VBA?

V tabeli običajno vidimo nabor podatkov, vendar je v terminologiji VBA veliko več, na primer obseg celotnega obsega seznama podatkov, stolpec je znan kot stolpec seznama, vrstica pa vrstica seznama itd. , zato imamo za dostop do teh lastnosti vgrajeno funkcijo, znano kot Listobjects, ki se uporablja s funkcijo delovnega lista.

VBA ListObject je način sklicevanja na tabele excel med pisanjem kode VBA. Z uporabo VBA LISTOBJECTS lahko ustvarjamo, brišemo tabele in se v celoti lahko igramo z excel tabelami v kodi VBA. Excel tabele so zapletene, začetniki in celo do neke mere uporabniki srednjih stopenj težko delajo s tabelami. Ker ta članek govori o sklicevanju na tabele excel v kodiranju VBA, je bolje, da dobro poznate tabele v excelu.

Ko se podatki pretvorijo v tabele, ne delujemo več z vrsto celic. Namesto tega moramo delati z obsegi tabel, zato vam bomo v tem članku pokazali, kako delati z excel tabelami za učinkovito pisanje kod VBA.

Ustvari obliko tabele z uporabo ListObjects v Excelu VBA

Na primer, poglejte spodnje podatke excel.

Z uporabo kode VBA ListObject bomo za te podatke ustvarili obliko tabele.

  • Za te podatke moramo najprej najti, katera je zadnja uporabljena vrstica in stolpec, zato določite dve spremenljivki, da to najdete.

Koda:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Za iskanje zadnje uporabljene vrstice in stolpca uporabite spodnjo kodo.

Koda:

LR = celice (vrstice. Število, 1). Konec (xlUp). Vrstica LC = celice (1, stolpci. Število). Konec (xlToLeft). Stolpec
  • Zdaj določite še eno spremenljivko, ki bo vsebovala sklic na podatke.

Koda:

Dim Rng As Range
  • Zdaj nastavite sklic na to spremenljivko z uporabo spodnje kode.

Koda:

Nastavite Rng = Celice (1, 1) .Resize (LR, LC)

Zdaj moramo za izdelavo tabele uporabiti metodo VBA “ListObject.Add”, spodaj pa je sintaksa iste.

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

Vir: To ni nič, za kateri obseg celic vstavljamo tabelo. Tu lahko navedemo dva argumenta, tj. "XlSrcRange" in "xlSrcExternal."

XlListObjectHasHeaders: Če ima tabela, ki vstavlja podatke, glave ali ne. Če je odgovor pritrdilen, lahko navedemo "xlYes." V nasprotnem primeru lahko zagotovimo "xlNo."

Cilj: To ni nič drugega kot naš obseg podatkov.

Slog tabele: če želite uporabiti kateri koli slog tabele, lahko ponudimo sloge.

  • Ok, zdaj v aktivnem listu ustvarjamo tabelo, zato bi spodnja koda ustvarila tabelo za nas.

Koda:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Po tem moramo tej tabeli dati ime.

Koda:

Ws.ListObjects (1) .name = "EmpTable"
  • Spodaj je celotna koda za referenco.

Koda:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Celice (Rows.Count, 1) .End (xlUp) .Red LC = Celice (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Nastavite Rng = Celice (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, zaženimo kodo in si oglejmo čarovnijo.

Ustvaril je tabelo za omenjene podatke in ji dal ime tabele kot »EmpTable«.

Oblikovanje Excelovih tabel z VBA ListObjects

Ko je tabela Excel ustvarjena, lahko s tabelami delamo s pomočjo zbirke VBA ListObject.

  • Najprej spremenljivko definirajte kot »ListObject«.

Koda:

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.

  • Spodaj je seznam kod dejavnosti za vašo referenco.

Koda:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange. Izberite vrstice naslovov tabele MyTable.ListColumns (2) .Range.Select 'Če želite izbrati stolpec 2, vključno z glavo MyTable.ListColumns (2) .DataBodyRange.Select' Za izbiro stolpca 2 brez glave End Sub

Tako lahko tudi mi uporabljamo zbirko "ListObject" za poigravanje z excel tabelami.

Stvari, ki si jih je treba zapomniti

  • VBA ListObject je zbirka predmetov, ki se sklicujejo na tabele excel.
  • Za prvi dostop do zbirke ListObject moramo določiti, na kateri delovni list se sklicujemo.

Zanimive Članki...