Zoznam objektov VBA - Sprievodca tabuľkami Excel ListObject v programe Excel VBA

Čo sú ListObjects vo VBA?

V tabuľke je zvyčajne to, čo vidíme, množina údajov, ale v terminológii VBA existuje oveľa viac, napríklad rozsah celkového rozsahu zoznamov údajov, stĺpec je známy ako stĺpec zoznamu a riadok je známy ako riadok zoznamu atď. , takže na prístup k týmto vlastnostiam máme vstavanú funkciu známu ako Listobjects a ktorá sa používa s funkciou listu.

VBA ListObject je spôsob odkazovania na tabuľky programu Excel pri písaní kódu VBA. Použitím VBA LISTOBJECTS môžeme vytvárať, mazať tabuľky a úplne sa dokážeme pohrať s tabuľkami Excel v kóde VBA. Tabuľky programu Excel sú zložité, začiatočníci a pre používateľov na strednej úrovni je pre prácu s tabuľkami dokonca ťažké. Pretože tento článok hovorí o odkazovaní na tabuľky programu Excel v kódovaní VBA, je lepšie, aby ste mali dobré znalosti o tabuľkách v programe Excel.

Keď sa údaje prevedú do tabuliek, už nebudeme pracovať s rozsahom buniek. Skôr musíme pracovať s rozsahmi tabuliek, takže v tomto článku si ukážeme, ako pracovať s tabuľkami programu Excel a efektívne písať kódy VBA.

Vytvorte formát tabuľky pomocou ListObjects v programe Excel VBA

Napríklad sa pozrite na nižšie uvedené údaje programu Excel.

Pomocou kódu VBA ListObject vytvoríme pre tieto údaje formát tabuľky.

  • Pre tieto dáta najskôr musíme zistiť, aký je naposledy použitý riadok a stĺpec, takže nájdite tieto dve premenné.

Kód:

Sub List_Objects_Example1 () Dim LR as Long Dim LC as Long End Sub
  • Na vyhľadanie posledného použitého riadku a stĺpca použite nasledujúci kód.

Kód:

LR = bunky (riadky, počet, 1). Koniec (xlUp). Riadok LC = bunky (1, stĺpce. Počet). Koniec (xlToLeft). Stĺpec
  • Teraz definujte jednu ďalšiu premennú na uchovanie referencie údajov.

Kód:

Dim Rng As Range
  • Teraz nastavte odkaz na túto premennú pomocou nižšie uvedeného kódu.

Kód:

Set Rng = Cells (1, 1). Resize (LR, LC)

Teraz musíme na vytvorenie tabuľky použiť metódu VBA „ListObject.Add“ a nižšie je uvedená jej syntax.

ListObject.Add (zdroj, XlListObjectHasHeaders, cieľ, TableStyleName)

Zdroj: Toto nie je nič, pre aký rozsah buniek vkladáme tabuľku. Môžeme sem teda dodať dva argumenty, tj. „XlSrcRange“ a „xlSrcExternal“.

XlListObjectHasHeaders: Ak tabuľka vkladajúca údaje má alebo nemá hlavičky. Ak áno, môžeme poskytnúť „xlÁno.“ Ak nie, môžeme poskytnúť „xlNo.“

Cieľ: Toto nie je nič iné ako náš rozsah údajov.

Štýl tabuľky: Ak chcete použiť akýkoľvek štýl tabuľky, môžeme poskytnúť štýly.

  • Dobre, teraz v aktívnom hárku vytvárame tabuľku, takže nasledujúci kód by vytvoril tabuľku pre nás.

Kód:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Potom musíme tejto tabuľke pomenovať.

Kód:

Ws.ListObjects (1) .name = "EmpTable"
  • Ďalej je uvedený úplný kód pre vašu referenciu.

Kód:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Dim Rng As Range Set 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 = " Prázdna tabuľka

Dobre, spustíme kód a uvidíme kúzlo.

Vytvorila tabuľku k uvedeným údajom a dala jej názov „EmpTable“.

Formátovanie tabuliek Excel pomocou VBA ListObjects

Po vytvorení tabuľky programu Excel môžeme s tabuľkami pracovať pomocou kolekcie VBA ListObject.

  • Najskôr definujte premennú ako „ListObject“.

Kód:

Sub List_Objects_Example2 () Dim MyTable ako ListObject End Sub
  • Teraz nastavte odkaz na túto premennú pomocou názvu tabuľky.

Kód:

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

Premenná „MyTable“ teraz obsahuje referenciu pre tabuľku „EmpTable“.

  • Zadajte názov premennej a vložte bodku, aby ste videli vlastnosti a metódy VBA ListObject.

Napríklad, ak chceme vybrať celú tabuľku, musíme použiť objekt „Range“ a pod ním musíme použiť metódu „Select“.

Kód:

MyTable.Range. Vyberte

Týmto by sa vybrala celá tabuľka údajov vrátane nadpisu.

  • Ak chcete vybrať iba obsah tabuľky bez hlavičiek, musíme použiť program „DataBodyRange“.

Kód:

MyTable.DataBodyRange.Select

Takto sa môžeme hrať so stolmi.

  • Nižšie je uvedený zoznam kódov aktivít pre vašu referenciu.

Kód:

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 Vyberte riadky hlavičky tabuľky MyTable.ListColumns (2). Range. Vyberte „Ak chcete vybrať stĺpec 2 vrátane hlavičky MyTable.ListColumns (2) .DataBodyRange. Vyberte„ Ak chcete vybrať stĺpec 2 bez hlavičky End Sub.

Takto môžeme použiť kolekciu „ListObject“ na pohrávanie sa s tabuľkami programu Excel.

Na čo treba pamätať

  • VBA ListObject je kolekcia objektov, ktoré odkazujú na tabuľky programu Excel.
  • Ak chcete najskôr získať prístup do kolekcie ListObject, musíme určiť, na ktorý pracovný hárok máme na mysli.

Zaujímavé články...