VBA loeteluobjektid | Juhend ListObjecti Exceli tabelitele Exceli VBA-s

Mis on VBA-s ListObjects?

Tavaliselt on tabelis, mida me näeme, andmekogum, kuid VBA terminoloogias on palju muud, näiteks kogu andmete loendi vahemiku vahemik, veerg on nimekirja veerg ja rida loendi rida jne , nii et nendele omadustele juurdepääsemiseks on meil sisseehitatud funktsioon nimega Listobjects ja mida kasutatakse töölehe funktsiooniga.

VBA ListObject on viis viidata Exceli tabelitele VBA koodi kirjutamise ajal. Kasutades VBA LISTOBJECTS, saame tabeli luua, kustutada ja täielikult mängida VAB-koodi Exceli tabelitega. Exceli tabelid on keerulised, algajad ja isegi kesktaseme kasutajatel on tabelitega töötamine keeruline. Kuna see artikkel räägib Exceli tabelite viitamisest VBA kodeerimisel, on parem, kui teil on Exceli tabelite kohta head teadmised.

Kui andmed teisendatakse tabeliteks, ei tööta me enam lahtrivahemikuga, vaid peame töötama tabelivahemikega, nii et selles artiklis näitame teile, kuidas töötada Exceli tabelitega VBA-koodide tõhusaks kirjutamiseks.

Looge tabelivorming Exceli VBA loendis ListObjects

Näiteks vaadake allolevaid Exceli andmeid.

VBA ListObject koodi abil loome nende andmete jaoks tabelivormingu.

Selle VBA ListObjects Exceli malli saate alla laadida siit - VBA ListObjects Exceli mall
  • Nende andmete jaoks peame kõigepealt leidma, milline on viimati kasutatud rida ja veerg, nii et määrake selle leidmiseks kaks muutujat.

Kood:

 Alamloend_objektid_näide1 () Hämarda LR nii pikk kui hämar LC kui pikk ots alam 

  • Viimati kasutatud rea ja veeru leidmiseks kasutage allolevat koodi.

Kood:

LR = Lahtrid (Read.Count, 1) .End (xlUp) .Rida LC = Cells (1, Columns.Count) .End (xlToLeft). Veerg

  • Andmete viite hoidmiseks määrake nüüd veel üks muutuja.

Kood:

 Hämar Rng vahemikuna 

  • Nüüd määrake sellele muutujale viide, kasutades allolevat koodi.

Kood:

 Määra Rng = lahtrid (1, 1). Suuruse muutmine (LR, LC)

Nüüd peame tabeli loomiseks kasutama meetodit VBA “ListObject.Add” ja allpool on sama süntaks.

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

Allikas: see pole midagi, millise lahtrivahemiku jaoks me tabeli sisestame. Seega võime siin esitada kaks argumenti, st "xlSrcRange" ja "xlSrcExternal".

XlListObjectHasHeaders: kui andmete sisestamise tabelis on päised või mitte. Kui jah, siis saame anda „xlYes”, kui ei, siis „xlNo”.

Sihtkoht: see pole midagi muud kui meie andmevahemik.

Tabeli stiil: kui soovite kasutada mis tahes tabeli stiili, võime pakkuda stiile.

  • Ok, nüüd loome aktiivses lehes tabelit, nii et allpool kood looks meile tabeli.

Kood:

 Hämarda Ws töölehekomplektina Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

  • Pärast seda peame sellele tabelile nime andma.

Kood:

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

  • Allpool on teie viite täielik kood.

Kood:

 Alamloend_objektid_näide1 () Dim LR As Long Dim LC As Long LR = lahtrid (read.Count, 1) .End (xlUp) .Rida LC = Cells (1, Columns.Count) .End (xlToLeft). Column Dim Rng as Range Määra Rng = lahtrid (1, 1). Muuda suurust (LR, LC) Dim Ws töölehekomplektina Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1). Nimi = " EmpTable "End Sub 

Ok, käivitame koodi ja vaatame võlu.

See on loonud tabeli mainitud andmetele ja andnud tabeli nimeks “EmpTable” .

Exceli tabelite vormindamine VBA ListObjects abil

Kui Exceli tabel on loodud, saame tabelitega töötada, kasutades vba ListObject kollektsiooni.

  • Esiteks määratlege muutuja kui „ListObject”.

Kood:

 Alamloend_objektid_näide2 () Dim MyTable Dim ListLobjekti lõpp alam 

  • Nüüd määrake tabeli nime abil viide sellele muutujale.

Kood:

 Alamloend_objektid_näide2 () Dim MyTable nimega ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub 

Nüüd hoiab muutuja “MyTable” viidet tabelile “EmpTable”.

  • Sisestage muutuja nimi ja lisage punkt, et näha VBA ListObject'i omadusi ja meetodeid.

Näiteks kui tahame valida kogu tabeli, peame kasutama objekti „Range“ ja selle all peame kasutama meetodit „Select“.

Kood:

MyTable.Range. Valige

See valiks kogu andmetabeli koos pealkirjaga.

  • Kui soovite valida ainult tabeli sisu ilma päisteta, peame kasutama „DataBodyRange”.

Kood:

MyTable.DataBodyRange.Select

Niimoodi saame lauadega ringi mängida.

  • Allpool on loetelu tegevuskoodidest.

Kood:

 Alamloend_objektid_näide2 () Hämarda MyTable-i kui ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Andmevahemiku valimiseks ilma päisteta MyTable.Range.Select' Andmete vahemiku valimiseks päistega MyTable.HeaderRowRange. Valige tabeli päiseread MyTable.ListColumns (2) .Range.Select '2. veeru valimiseks koos päisega MyTable.ListColumns (2) .DataBodyRange.Select' 2. veeru valimiseks ilma päise lõpu alamvalikuta 

Nii saame Exceli tabelitega ringi mängimiseks kasutada kollektsiooni “ListObject”.

Asjad, mida meeles pidada

  • VBA ListObject on objektide kogu, mis viitab Exceli tabelitele.
  • Kogumisele ListObject pääsemiseks peame kõigepealt määrama, milline tööleht on viide.

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