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

Co jsou ListObjects ve VBA?

V tabulce je obvykle 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 aplikace Excel jsou složité, začátečníci a pro uživatele na střední úrovni je práce s tabulkami obtížná. Protože tento článek hovoří o odkazování na tabulky Excel v kódování VBA, je lepší, abyste měli dobré znalosti o tabulkách v aplikaci Excel.

Když jsou data převedena do tabulek, 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.

  • Pro tato data nejprve musíme zjistit, 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 uvedena její syntaxe.

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

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

XlListObjectHasHeaders: Pokud má tabulka vkládající data záhlaví nebo ne. Pokud ano, můžeme poskytnout „xlAno.“ Pokud ne, můžeme poskytnout „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 vytvořil tabulku pro nás.

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 podle zmíněných dat 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 odkaz 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.
  • Chcete-li nejprve získat přístup k kolekci ListObject, musíme určit, na který list odkazujeme.

Zajímavé články...