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 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 nebeveikiame su langelių diapazonu, o mums reikia 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ą.

Šį „VBA ListObjects Excel“ šabloną galite atsisiųsti čia - „VBA ListObjects Excel“ šablonas
  • Šiems duomenims pirmiausia reikia surasti paskutinę naudojamą eilutę ir stulpelį, todėl nustatykite du kintamuosius, kad tai rastumėte.

Kodas:

 Sub sąrašas_objektai_pavyzdys1 () Dim LR as Long Dim LC LC Long End Sub 

  • 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 yra 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, mes 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 mes kuriame lentelę, todėl žemiau pateiktas kodas sukurs mums lentelę.

Kodas:

 „Dim Ws“ kaip darbalapių 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:

 Papildomas sąrašas_objektai_pavyzdys2 () pritemdyti „MyTable“ kaip „ListObject End Sub“ 

  • Dabar nustatykite nuorodą į šį kintamąjį naudodami lentelės pavadinimą.

Kodas:

 Antrasis sąrašas_objektai_pavyzdys2 () pritemdyti „MyTable“ kaip „ListObject“ rinkinį „Mano lentelė“ = „ActiveSheet.ListObjects“ („EmpTable“) Pabaiga 

Dabar kintamasis „MyTable“ turi lentelės „EmpTable“ nuorodą.

  • Įveskite kintamojo pavadinimą ir įdėkite tašką, kad pamatytumėte „VBA ListObject“ ypatybes ir metodus.

Pvz., Jei norime pasirinkti visą lentelę, turime naudoti objektą „Range“ ir pagal tai naudoti „Select“ metodą.

Kodas:

„MyTable.Range“. Pasirinkite

Tai pasirinktų visą duomenų lentelę, įskaitant antraštę.

  • Jei norite pasirinkti tik lentelės turinį be antraščių, turime naudoti „DataBodyRange“.

Kodas:

„MyTable.DataBodyRange“. Pasirinkite

Taip galime žaisti su stalais.

  • Ž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ų, skirtų „Excel“ lentelėms, rinkinys.
  • Norėdami pirmiausia pasiekti „ListObject“ rinkinį, turime nurodyti, koks yra darbalapis, apie kurį kalbame.

$config[zx-auto] not found$config[zx-overlay] not found