VBA listaTárgyak | Útmutató a ListObject Excel táblákhoz az Excel VBA-ban

Mik azok a ListObjects a VBA-ban?

Egy olyan táblázatban, amelyet általában látunk, az egy adatkészlet, de a VBA terminológiában sokkal több van, például a teljes adatlista tartománya, az oszlop a lista oszlop, a sor pedig a lista sor és így tovább , így ezen tulajdonságok elérése érdekében van egy beépített függvényünk, amelyet Listobjects néven ismerünk, és amelyet a munkalap funkcióval együtt használunk.

A VBA ListObject segítségével az Excel táblákra hivatkozhatunk a VBA kód írása közben. A VBA LISTOBJECTS használatával létrehozhatunk, törölhetünk táblázatot, és teljes egészében játszhatunk az Excel táblákkal a VBA kódban. Az Excel táblák bonyolultak, kezdők, és a középszintű felhasználóknak is bizonyos mértékben nehéz dolgozniuk a táblákkal. Mivel ez a cikk az excel táblák hivatkozásáról szól a VBA kódolásban, jobb, ha jól ismeri az excel tábláit.

Amikor az adatokat táblákká konvertáljuk, már nem cellatartománnyal dolgozunk, inkább táblázattartományokkal kell dolgoznunk, ezért ebben a cikkben megmutatjuk, hogyan kell működni az excel táblákkal a VBA kódok hatékony megírásához.

Táblázatformátum létrehozása a ListObjects használatával az Excel VBA alkalmazásban

Nézze meg például az alábbi excel adatokat.

A VBA ListObject kód használatával létrehozunk egy táblázati formátumot ezekhez az adatokhoz.

Ezt a VBA ListObjects Excel sablont innen töltheti le - VBA ListObjects Excel sablont
  • Ehhez az adathoz először meg kell találnunk, mi az utoljára használt sor és oszlop, ezért definiáljon két változót ennek megtalálásához.

Kód:

 Allista_tárgyak_Példa1 () Dim LR As Long Dim LC LC As Long End Sub 

  • Az utoljára használt sor és oszlop megtalálásához használja az alábbi kódot.

Kód:

LR = cellák (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft). Oszlop

  • Most adjon meg még egy változót az adatok hivatkozásának tárolására.

Kód:

 Dim Rng As Range 

  • Most állítsa be a hivatkozást erre a változóra az alábbi kód használatával.

Kód:

 Set Rng = Cells (1, 1). Átméretezés (LR, LC)

Most a VBA “ListObject.Add” módszert kell használnunk egy tábla létrehozásához, és az alábbiakban látható a szintaxisa.

ListObject.Add (Forrás, XlListObjectHasHeaders, Destination, TableStyleName)

Forrás: Ez nem az a cellatartomány, amelybe beszúrjuk a táblázatot. Tehát itt két érvet adhatunk meg: „xlSrcRange” és „xlSrcExternal”.

XlListObjectHasHeaders: Ha az adatokat beszúró táblázat fejlécekkel rendelkezik. Ha igen, akkor megadhatjuk az „xlYes” szót, ha nem, akkor az „xlNo” értéket.

Cél: Ez nem más, mint az adattartományunk.

Táblázat stílus: Ha bármilyen táblázatot szeretne alkalmazni, akkor stílusokat is megadhatunk.

  • Ok, most az aktív munkalapban létrehozzuk a táblázatot, így az alábbi kód létrehozna egy táblázatot számunkra.

Kód:

 Dim Ws munkalapkészletként Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

  • Ezek után nevet kell adnunk ennek a táblának.

Kód:

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

  • Az alábbiakban a teljes kódot találja.

Kód:

 Allista_objektumok_Példa1 () Dim LR As Long Dim LC As Long LR = cellák (Rows. Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft). Column Dim Rng as Range Állítsa be az Rng = Cellákat (1, 1). Átméretezze (LR, LC) Dim Ws munkalapként Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1). Név = " EmpTable "End Sub 

Ok, futtassuk a kódot, és nézzük meg a varázslatot.

Létrehozta a táblázatot az említett adatokhoz, és a tábla nevét „EmpTable” néven adta meg .

Excel táblázatok formázása a VBA ListObjects segítségével

Miután létrehozta az Excel táblázatot, a vba ListObject gyűjtemény segítségével táblákkal dolgozhatunk.

  • Először definiálja a változót „ListObject” néven.

Kód:

 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.

  • Below is the list of activity codes for your reference.

Code:

 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 Select table header rows MyTable.ListColumns(2).Range.Select 'To select column 2 including header MyTable.ListColumns(2).DataBodyRange.Select 'To select column 2 without header End Sub 

Like this, we can use the “ListObject” collection to play around with excel tables.

Things to Remember

  • VBA ListObject is the collection of objects to reference excel tables.
  • To access ListObject collection first we need to specify what worksheet we are referring to is.