Seznam objektů VBA | Průvodce tabulkami Excel ListObject v aplikaci Excel VBA

Co jsou ListObjects ve VBA?

V tabulce je normálně to, co vidíme, datová sada, ale v terminologii VBA existuje mnohem více, protože existuje rozsah celkového rozsahu seznamu dat, sloupec je známý jako sloupec seznamu a řádek je známý jako řádek seznamu atd. , abychom měli přístup k těmto vlastnostem, máme vestavěnou funkci známou jako Listobjects a která se používá s funkcí listu.

VBA ListObject je způsob odkazování na tabulky aplikace Excel při psaní kódu VBA. Pomocí VBA LISTOBJECTS můžeme vytvářet, mazat tabulky a úplně si můžeme hrát s tabulkami Excel v kódu VBA. Tabulky Excel jsou složité, pro začátečníky a pro uživatele na střední úrovni je obtížné pracovat s tabulkami. Vzhledem k tomu, že tento článek hovoří o odkazování na tabulky aplikace Excel v kódování VBA, je lepší, abyste měli dobré znalosti o tabulkách v aplikaci Excel.

Když se data převádějí na tabulky, již nepracujeme s řadou buněk, spíše musíme pracovat s rozsahy tabulek, takže v tomto článku vám ukážeme, jak pracovat s tabulkami aplikace Excel a efektivně psát kódy VBA.

Vytvořte formát tabulky pomocí ListObjects v aplikaci Excel VBA

Podívejte se například na níže uvedená data aplikace Excel.

Pomocí kódu VBA ListObject vytvoříme formát tabulky pro tato data.

Tuto šablonu VBA ListObjects Excel si můžete stáhnout zde - Šablona VBA ListObjects Excel
  • Pro tato data nejprve musíme najít, co je poslední použitý řádek a sloupec, takže definujte dvě proměnné, abyste to našli.

Kód:

 Sub List_Objects_Example1 () Dim LR as Long Dim LC as Long End Sub 

  • Chcete-li najít poslední použitý řádek a sloupec, použijte níže uvedený kód.

Kód:

LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column

  • Nyní definujte ještě jednu proměnnou pro uchování odkazu na data.

Kód:

 Dim Rng As Range 

  • Nyní nastavte odkaz na tuto proměnnou pomocí níže uvedeného kódu.

Kód:

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

Nyní musíme k vytvoření tabulky použít metodu VBA „ListObject.Add“ a níže je její syntaxe.

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

Zdroj: To není nic, pro jaký rozsah buněk vkládáme tabulku. Můžeme tedy zadat dva argumenty, tj. „XlSrcRange“ a „xlSrcExternal“.

XlListObjectHasHeaders: Pokud má tabulka vkládající data záhlaví nebo ne. Pokud ano, můžeme uvést „xlYes“, pokud ne, můžeme uvést „xlNo“.

Cíl: Toto není nic jiného než náš rozsah dat.

Styl tabulky: Pokud chcete použít jakýkoli styl tabulky, můžeme poskytnout styly.

  • Dobře, nyní v aktivním listu vytváříme tabulku, takže níže uvedený kód by pro nás vytvořil tabulku.

Kód:

 Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

  • Poté musíme této tabulce dát název.

Kód:

Ws.ListObjects (1) .name = "EmpTable"

  • Níže je uveden úplný kód pro vaši referenci.

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 = " EmpTable „End Sub 

Dobře, spustíme kód a uvidíme kouzlo.

Vytvořila tabulku ke zmíněným datům a pojmenovala ji jako „EmpTable“ .

Formátování tabulek aplikace Excel pomocí VBA ListObjects

Po vytvoření tabulky aplikace Excel můžeme s tabulkami pracovat pomocí kolekce vba ListObject.

  • Nejprve definujte proměnnou jako „ListObject“.

Kód:

 Sub List_Objects_Example2 () Dim MyTable jako ListObject End Sub 

  • Nyní nastavte odkaz na tuto proměnnou pomocí názvu tabulky.

Kód:

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

Proměnná „MyTable“ nyní obsahuje reference pro tabulku „EmpTable“.

  • Zadejte název proměnné a vložte tečku, abyste viděli vlastnosti a metody VBA ListObject.

Například pokud chceme vybrat celou tabulku, musíme použít objekt „Range“ a pod tím musíme použít metodu „Select“.

Kód:

MyTable.Range.Select

Tím by se vybrala celá tabulka dat včetně záhlaví.

  • Pokud chcete vybrat pouze obsah tabulky bez záhlaví, musíme použít „DataBodyRange“.

Kód:

MyTable.DataBodyRange.Select

Takto si můžeme hrát se stoly.

  • Níže je uveden seznam kódů aktivit pro vaši referenci.

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 řádky záhlaví tabulky MyTable.ListColumns (2) .Range.Select 'Chcete-li vybrat sloupec 2 včetně záhlaví MyTable.ListColumns (2) .DataBodyRange.Select' Chcete-li vybrat sloupec 2 bez záhlaví End Sub 

Takto můžeme použít kolekci „ListObject“ k hraní s tabulkami aplikace Excel.

Věci k zapamatování

  • VBA ListObject je kolekce objektů, které odkazují na tabulky aplikace Excel.
  • Pro přístup do ListObject kolekce nejprve musíme určit, na který list odkazujeme.

$config[zx-auto] not found$config[zx-overlay] not found