VBA sarakstsObjekti - Guide to ListObject Excel tabulas programmā Excel VBA

Satura rādītājs

Kas ir ListObjects VBA?

Tabulā parasti tas, ko mēs redzam, ir datu kopa, bet VBA terminoloģijā ir daudz vairāk, piemēram, ir kopējais datu sarakstu diapazons, kolonna ir pazīstama kā saraksta kolonna un rinda ir pazīstama kā saraksta rinda utt. , tāpēc, lai piekļūtu šīm īpašībām, mums ir iebūvēta funkcija, kas pazīstama kā Listobjects un kas tiek izmantota ar darblapas funkciju.

VBA ListObject ir veids, kā atsaukties uz Excel tabulām, rakstot VBA kodu. Izmantojot VBA LISTOBJECTS, mēs varam izveidot, izdzēst tabulu, un pilnīgi mēs varam spēlēt kopā ar Excel tabulām VBA kodā. Excel tabulas ir grūts, iesācēji, un pat zināmā mērā vidēja līmeņa lietotājiem ir grūti strādāt ar tabulām. Tā kā šajā rakstā ir runāts par Excel tabulu norādīšanu VBA kodēšanā, labāk, ja jums ir labas zināšanas par Excel tabulām.

Kad dati tiek konvertēti tabulās, mēs vairs nestrādājam ar šūnu diapazonu. Drīzāk mums ir jāstrādā ar tabulu diapazoniem, tāpēc šajā rakstā mēs parādīsim, kā strādāt ar Excel tabulām, lai efektīvi rakstītu VBA kodus.

Izveidojiet tabulas formātu, izmantojot ListObjects programmā Excel VBA

Piemēram, apskatiet tālāk minētos Excel datus.

Izmantojot VBA ListObject kodu, mēs izveidosim tabulas formātu šiem datiem.

  • Šiem datiem vispirms jāatrod, kas ir pēdējais izmantotais rinds un kolonna, tāpēc definējiet divus mainīgos, lai to atrastu.

Kods:

Apakšsaraksts_objekti_piemērs1 () Dim LR tik ilgi Dim LC LC kā Long End Sub
  • Lai atrastu pēdējo izmantoto rindu un kolonnu, izmantojiet zemāk esošo kodu.

Kods:

LR = Cells (Rows.Count, 1) .End (xlUp). Rinda LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Tagad definējiet vēl vienu mainīgo, lai saglabātu datu atsauci.

Kods:

Dim Rng kā diapazons
  • Tagad iestatiet atsauci uz šo mainīgo, izmantojot zemāk esošo kodu.

Kods:

Iestatīt Rng = šūnas (1, 1). Mainīt izmēru (LR, LC)

Tagad, lai izveidotu tabulu, mums jāizmanto VBA metode “ListObject.Add”, un zemāk ir tās pašas sintakse.

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

Avots: tas nav tas, kuram šūnu diapazonam mēs ievietojam tabulu. Tātad šeit mēs varam sniegt divus argumentus, ti, “xlSrcRange” un “xlSrcExternal”.

XlListObjectHasHeaders: Ja tabulai, kurā ievieto datus, ir galvenes vai nav. Ja jā, mēs varam nodrošināt “xlYes”. Ja nē, mēs varam norādīt “xlNo”.

Galamērķis: tas nav nekas cits kā mūsu datu diapazons.

Galda stils: ja vēlaties lietot jebkuru tabulas stilu, mēs varam nodrošināt stilus.

  • Labi, tagad aktīvajā lapā mēs veidojam tabulu, tāpēc zemāk esošais kods izveidotu mums tabulu.

Kods:

Dim Ws kā darblapu kopa Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Pēc tam mums ir jāpiešķir šai tabulai nosaukums.

Kods:

Ws.ListObjects (1) .name = "EmpTable"
  • Zemāk ir pilns jūsu atsauces kods.

Kods:

Apakšsaraksts_objekti_piemērs1 () Dim LR kā garš Dim LC LC kā garš LR = šūnas (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft). Column Dim Rng as Range Iestatiet Rng = Cells (1, 1). Mainiet izmēru (LR, LC) Dim Ws kā darblapu kopu Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1). Name = " EmpTable "End Sub

Labi, palaidīsim kodu un redzēsim maģiju.

Minētajiem datiem tā ir izveidojusi tabulu un piešķīrusi tabulas nosaukumu kā “EmpTable”.

Excel tabulu formatēšana ar VBA ListObjects

Kad Excel tabula ir izveidota, mēs varam strādāt ar tabulām, izmantojot VBA ListObject kolekciju.

  • Vispirms definējiet mainīgo kā “ListObject”.

Kods:

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.

  • Tālāk ir sniegts aktivitāšu kodu saraksts jūsu atsaucei.

Kods:

Apakšsaraksta_objekti_piemērs2 () Dim MyTable kā ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Lai atlasītu datu diapazonu bez galvenēm MyTable.Range.Select' Lai atlasītu datu diapazonu ar galvenēm MyTable.HeaderRowRange. Atlasiet tabulas galvenes rindas MyTable.ListColumns (2). Range.Select 'Lai atlasītu 2. kolonnu, ieskaitot header MyTable.ListColumns (2). DataBodyRange.Select', lai atlasītu 2. kolonnu bez galvenes End Sub

Šādi mēs varam izmantot kolekciju “ListObject”, lai spēlētos ar Excel tabulām.

Atceramās lietas

  • VBA ListObject ir objektu kolekcija atsauces Excel tabulām.
  • Lai vispirms piekļūtu kolekcijai ListObject, mums jānorāda, kāda ir darblapa, uz kuru mēs atsaucamies.

Interesanti raksti...