VBA ListObjects - Ghid pentru tabelele ListObject Excel în Excel VBA

Ce sunt ListObjects în VBA?

Într-un tabel, în mod normal, ceea ce vedem este un set de date, dar în terminologia VBA există mult mai multe, de exemplu, există un interval al listei totale de date, coloana este cunoscută sub numele de coloană listă și rândul este cunoscut ca rândul listei și așa mai departe , deci pentru a accesa aceste proprietăți avem o funcție încorporată cunoscută sub numele de Listobjects și care este utilizată cu funcția de foaie de lucru.

VBA ListObject este un mod de a face referire la tabelele Excel în timp ce scrieți codul VBA. Folosind VBA LISTOBJECTS, putem crea, șterge tabelul și în totalitate ne putem juca cu tabele Excel în codul VBA. Tabelele Excel sunt dificile, începători și chiar într-o anumită măsură, utilizatorii de nivel intermediar au dificultăți în a lucra cu tabelele. Deoarece acest articol vorbește despre referințarea tabelelor Excel în codificarea VBA, este mai bine să aveți cunoștințe bune despre tabelele în Excel.

Când datele sunt convertite în tabele, nu mai lucrăm cu o gamă de celule. Mai degrabă, trebuie să lucrăm cu intervale de tabele, așa că, în acest articol, vă vom arăta cum să lucrați cu tabele Excel pentru a scrie coduri VBA în mod eficient.

Creați formatul tabelului utilizând ListObjects în Excel VBA

De exemplu, uitați-vă la datele Excel de mai jos.

Folosind codul VBA ListObject, vom crea un format de tabel pentru aceste date.

  • Mai întâi pentru aceste date, trebuie să găsim care este ultimul rând și coloană utilizate, deci definiți două variabile pentru a găsi acest lucru.

Cod:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Pentru a găsi ultimul rând și coloană folosite, folosiți codul de mai jos.

Cod:

LR = Celule (Rânduri. Număr, 1). Final (xlUp). Rând LC = Celule (1, Coloane. Număr) .End (xlToLeft). Coloană
  • Acum definiți încă o variabilă pentru a menține referința datelor.

Cod:

Dim Rng As Range
  • Acum setați referința la această variabilă utilizând codul de mai jos.

Cod:

Setați Rng = Celule (1, 1). Redimensionați (LR, LC)

Acum trebuie să folosim metoda VBA „ListObject.Add” pentru a crea un tabel, iar mai jos este sintaxa aceluiași.

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

Sursă: nu este nimic pentru care gamă de celule inserăm tabelul. Deci, putem furniza două argumente aici, adică „xlSrcRange” și „xlSrcExternal”.

XlListObjectHasHeaders: Dacă tabelul care introduce date are anteturi sau nu. Dacă da, putem oferi „xlYes”. Dacă nu, putem oferi „xlNo”.

Destinație: Aceasta nu este altceva decât gama noastră de date.

Stil de masă: dacă doriți să aplicați orice stil de masă, putem oferi stiluri.

  • Ok, acum în foaia activă, creăm tabelul, astfel încât codul de mai jos ar crea un tabel pentru noi.

Cod:

Dim Ws ca set de foi de lucru Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destinație: = Rng
  • După aceasta, trebuie să dăm un nume acestui tabel.

Cod:

Ws.ListObjects (1) .name = "EmpTable"
  • Mai jos este codul complet pentru referință.

Cod:

Sub List_Objects_Example1 () Dim LR As Long Dim LC Long As LR = Celule (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 Ca foaie de lucru Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destinație: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Ok, hai să rulăm codul și să vedem magia.

Acesta a creat tabelul pentru datele menționate și a dat numele tabelei ca „EmpTable”.

Formatarea tabelelor Excel cu VBA ListObjects

Odată ce tabelul Excel a fost creat, putem lucra cu tabele utilizând colecția VBA ListObject.

  • Mai întâi, definiți variabila ca „ListObject”.

Cod:

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.

  • Mai jos este lista codurilor de activitate pentru referință.

Cod:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Selectați 'Pentru a selecta intervalul de date fără anteturi MyTable.Range. Selectați rândurile antetului tabelului MyTable.ListColumns (2) .Range.Selectați „Pentru a selecta coloana 2, inclusiv antetul MyTable.ListColumns (2) .DataBodyRange. Selectați„ Pentru a selecta coloana 2 fără antet End Sub

Astfel, putem folosi colecția „ListObject” pentru a ne juca cu mesele Excel.

Lucruri de amintit

  • VBA ListObject este colecția de obiecte pentru referințarea tabelelor Excel.
  • Pentru a accesa mai întâi colecția ListObject, trebuie să specificăm la ce foaie de lucru ne referim.

Articole interesante...