VBA sąrašas Objektai „Excel VBA“ „Excel“ lentelių „ListObject“ vadovas

Kas yra „ListObjects“ VBA?

Lentelėje paprastai matome duomenų rinkinį, tačiau VBA terminologijoje yra daug daugiau, pavyzdžiui, yra viso duomenų sąrašo diapazono diapazonas, stulpelis žinomas kaip sąrašo stulpelis, o eilutė - sąrašo eilutė ir pan. , todėl norėdami pasiekti šias savybes, turime integruotą funkciją, vadinamą „Listobjects“ ir kuri naudojama su darbalapio funkcija.

„VBA ListObject“ yra būdas nurodyti „Excel“ lenteles rašant VBA kodą. Naudodami „VBA LISTOBJECTS“, galime sukurti, ištrinti lentelę ir visiškai žaisti su „Excel“ lentelėmis VBA kodu. „Excel“ lentelės yra keblios, pradedančios ir net tam tikru mastu vidutinio lygio vartotojams sunku dirbti su lentelėmis. Kadangi šiame straipsnyje kalbama apie „Excel“ lentelių priskyrimą VBA kodavimui, geriau turėtumėte gerų žinių apie „Excel“ lenteles.

Kai duomenys paverčiami lentelėmis, mes nebedirbame su langelių diapazonu. Veikiau turime dirbti su lentelių diapazonais, todėl šiame straipsnyje mes parodysime, kaip dirbti su „Excel“ lentelėmis, norint efektyviai rašyti VBA kodus.

Sukurkite lentelės formatą naudodami „Excel VBA“ naudodami „ListObjects“

Pavyzdžiui, pažiūrėkite į žemiau pateiktus „Excel“ duomenis.

Naudodami „VBA ListObject“ kodą, sukursime šių duomenų lentelės formatą.

  • Pirmiausia šiems duomenims turime surasti paskutinę naudojamą eilutę ir stulpelį, todėl nustatykite du kintamuosius, kad tai rastumėte.

Kodas:

Sub sąrašas_objektai_pavyzdys1 () Didesnis LR kaip ilgas Dim LC kaip ilgas galinis antrinis
  • Norėdami rasti paskutinį kartą naudotą eilutę ir stulpelį, naudokite toliau pateiktą kodą.

Kodas:

LR = Cells (Rows.Count, 1) .End (xlUp). Eilutė LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Dabar apibrėžkite dar vieną kintamąjį, kad būtų laikoma duomenų nuoroda.

Kodas:

„Dim Rng As Range“
  • Dabar nustatykite nuorodą į šį kintamąjį naudodami žemiau pateiktą kodą.

Kodas:

Nustatyti Rng = Cells (1, 1). Dydžio dydis (LR, LC)

Dabar mes turime naudoti VBA metodą „ListObject.Add“, kad sukurtume lentelę, o žemiau pateikiama to paties sintaksė.

„ListObject.Add“ (šaltinis, „XlListObjectHasHeaders“, „Destination“, „TableStyleName“)

Šaltinis: tai nėra tas langelių diapazonas, į kurį įterpiame lentelę. Taigi čia galime pateikti du argumentus, ty „xlSrcRange“ ir „xlSrcExternal“.

„XlListObjectHasHeaders“: jei lentelėje įterpiami duomenys, turi antraštes. Jei taip, galime pateikti „xlYes“. Jei ne, galime pateikti „xlNo“.

Paskirties vieta: tai yra ne kas kita, o mūsų duomenų diapazonas.

Stalo stilius: jei norite pritaikyti bet kokį stalo stilių, galime pateikti stilių.

  • Gerai, dabar aktyviame lape kuriame lentelę, todėl žemiau pateiktas kodas sukurs mums lentelę.

Kodas:

„Dim Ws“ kaip darbalapio rinkinys Ws = „ActiveSheet“ Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Po to turime suteikti šios lentelės pavadinimą.

Kodas:

Ws.ListObjects (1) .name = "EmpTable"
  • Žemiau yra visas jūsų nuorodos kodas.

Kodas:

Antrasis sąrašas_objektai_pavyzdys1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1) .End (xlUp). Eilutė LC = Cells (1, Columns.Count) .End (xlToLeft). Column Dim Rng as Range Nustatykite Rng = Cells (1, 1). Dydžio (LR, LC) Dim Ws kaip darbalapio rinkinys Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1). Name = " „EmpTable“ pabaigos pabaiga

Gerai, paleiskime kodą ir pamatysime magiją.

Sukūrė lentelę prie minėtų duomenų ir suteikė lentelės pavadinimą „EmpTable“.

„Excel“ lentelių su „VBA ListObjects“ formatavimas

Sukūrę „Excel“ lentelę, galime dirbti su lentelėmis naudodami „VBA ListObject“ kolekciją.

  • Pirmiausia apibrėžkite kintamąjį kaip „ListObject“.

Kodas:

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.

  • Žemiau pateikiamas jūsų veiklai skirtų veiklos kodų sąrašas.

Kodas:

„Sub List_Objects_Example2“ („Dim MyTable“ kaip „ListObject“ rinkinys „MyTable“ = „ActiveSheet.ListObjects“ („EmpTable“) „MyTable.DataBodyRange.Select“ Norėdami pasirinkti duomenų diapazoną be antraščių „MyTable.Range.Select“ Norėdami pasirinkti duomenų diapazoną su antraštėmis MyTable.HeaderRowRange. Pasirinkite lentelės antraštės eilutes „MyTable.ListColumns“ (2). Diapazonas. Pasirinkite „Norėdami pasirinkti 2 stulpelį, įskaitant antraštę„ MyTable.ListColumns “(2). DataBodyRange.Select 'Norėdami pasirinkti 2 stulpelį be antraštės pabaigos

Panašiai mes galime naudoti „ListObject“ kolekciją, kad galėtume žaisti su „Excel“ lentelėmis.

Ką reikia atsiminti

  • „VBA ListObject“ yra objektų, susijusių su „Excel“ lentelėmis, rinkinys.
  • Norėdami pirmiausia pasiekti „ListObject“ kolekciją, turime nurodyti, koks yra darbalapis, apie kurį kalbame.

Įdomios straipsniai...