Mga Listahan ng VBA ng Listahan | Patnubay sa Listahan ng Mga Tables ng Excel sa Excel VBA

Ano ang mga ListObjects sa VBA?

Sa isang talahanayan na normal ang nakikita natin ay isang hanay ng data ngunit sa terminolohiya ng VBA maraming iba pa tulad ng saklaw ng kabuuang saklaw ng listahan ng data, ang haligi ay kilala bilang haligi ng listahan at ang hilera ay kilala bilang hilera ng listahan at iba pa , kaya upang ma-access ang mga katangiang ito mayroon kaming isang built-in na pagpapaandar na kilala bilang Listobjects at kung saan ginagamit sa pagpapaandar ng worksheet.

Ang VBA ListObject ay isang paraan ng pagtukoy sa mga excel table habang sinusulat ang VBA code. Sa pamamagitan ng paggamit ng VBA LISTOBJECTS maaari tayong lumikha, magtanggal ng talahanayan, at ganap na maaari tayong maglaro kasama ang mga excel table sa VBA code. Ang mga Tables ng Excel ay nakakalito, nagsisimula, at kahit na sa isang lawak na antas sa pagitan ng mga gumagamit ay nahihirapang magtrabaho kasama ang mga talahanayan. Dahil ang artikulong ito ay nagsasalita tungkol sa pagsangguni sa mga talahanayan ng excel sa pag-coding ng VBA mas mabuti na mayroon kang mahusay na kaalaman tungkol sa mga talahanayan sa excel.

Kapag ang data ay na-convert sa mga talahanayan hindi na kami gumagana sa isang hanay ng mga cell sa halip kailangan namin upang gumana sa mga saklaw ng talahanayan, kaya sa artikulong ito, ipapakita namin sa iyo kung paano gumana sa mga excel table upang mahusay na isulat ang mga VBA code.

Lumikha ng Format ng Talahanayan Gamit ang ListObjects sa Excel VBA

Halimbawa, tingnan ang data ng excel sa ibaba.

Gamit ang VBA ListObject code lilikha kami ng isang format ng talahanayan para sa data na ito.

Maaari mong i-download ang VBA ListObjects Excel Template dito - VBA ListObjects Excel Template
  • Para sa data na ito kailangan muna naming hanapin kung ano ang huling ginamit na hilera at haligi, kaya tukuyin ang dalawang variable upang makita ito.

Code:

 Sub List_Objects_Example1 () Dim LR Bilang Long Dim LC Bilang Long End Sub 

  • Upang hanapin ang huling ginamit na hilera at haligi gamitin ang code sa ibaba.

Code:

LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns. Count). End (xlToLeft). Column

  • Tukuyin ngayon ang isa pang variable upang hawakan ang sanggunian ng data.

Code:

 Dim Rng Bilang Saklaw 

  • Itakda ngayon ang sanggunian sa variable na ito sa pamamagitan ng paggamit ng code sa ibaba.

Code:

 Itakda ang Rng = Mga Cell (1, 1). Baguhin ang laki (LR, LC)

Ngayon kailangan naming gumamit ng pamamaraan ng "ListObject.Add" ng VBA upang lumikha ng isang talahanayan at sa ibaba ay ang syntax ng pareho.

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

Pinagmulan: Hindi ito para sa kung aling saklaw ng mga cell ang ipinapasok namin sa talahanayan. Kaya't maaari naming ibigay ang dalawang mga argument dito. "XlSrcRange" at "XlSrcExternal".

XlListObjectHasHeaders: Kung ang talahanayan ng pagpasok ng data ay may mga header o wala. Kung oo maibibigay namin "XlYes" kung hindi maibibigay namin "XlNo".

Patutunguhan: Ito ay walang iba kundi ang aming saklaw ng data.

Estilo ng Talahanayan: Kung nais mong maglapat ng anumang istilo ng talahanayan maaari kaming magbigay ng mga estilo.

  • Ok, ngayon sa aktibong sheet ay lumilikha kami ng talahanayan, kaya sa ibaba ang code ay lilikha ng isang talahanayan para sa amin.

Code:

 Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng

  • Pagkatapos nito, kailangan naming magbigay ng isang pangalan sa talahanayan na ito.

Code:

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

  • Nasa ibaba ang buong code para sa iyong sanggunian.

Code:

 Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Column Dim Rng As Range Itakda ang Rng = Mga Cell (1, 1). Baguhin ang laki (LR, LC) Dim Ws Bilang Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " Magagamit "End Sub 

Ok, patakbuhin natin ang code at tingnan ang mahika.

Nilikha nito ang talahanayan sa nabanggit na data at ibinigay ang pangalan ng talahanayan bilang "Magagamit".

Pag-format ng Mga Talahanayan ng Excel na may Mga Listahan ng VBA

Sa sandaling nalikha ang talahanayan ng Excel maaari kaming gumana sa mga talahanayan sa pamamagitan ng paggamit ng koleksyon ng vba ListObject.

  • Una, tukuyin ang variable bilang "ListObject".

Code:

 Sub List_Objects_Example2 () Malabo ang MyTable Bilang ListObject End Sub 

  • Itakda ngayon ang sanggunian sa variable na ito sa pamamagitan ng paggamit ng pangalan ng talahanayan.

Code:

 Sub List_Objects_Example2 () Madilim ang MyTable Bilang ListObject Itakda ang MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub 

Ngayon ang variable na "MyTable" ay nagtataglay ng sanggunian para sa talahanayan na "EmpTable".

  • Ipasok ang variable na pangalan at maglagay ng isang tuldok upang makita ang mga katangian at pamamaraan ng VBA ListObject.

Halimbawa, kung nais naming piliin ang buong talahanayan kung gayon kailangan naming gamitin ang object na "Saklaw" at sa ilalim nito, kailangan naming gamitin ang pamamaraang "Piliin".

Code:

MyTable.Range.Select

Pipiliin nito ang buong talahanayan ng data kasama ang heading.

  • Kung nais mong piliin lamang ang mga nilalaman ng talahanayan nang walang mga header pagkatapos ay kailangan naming gumamit ng "DataBodyRange".

Code:

MyTable.DataBodyRange.Select

Tulad nito, maaari kaming maglaro sa mga mesa.

  • Nasa ibaba ang listahan ng mga code ng aktibidad para sa iyong sanggunian.

Code:

 Sub List_Objects_Example2 () I-dim MyTable Bilang ListObject Itakda MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Upang Pumili ng saklaw ng data nang walang mga header MyTable.Range.Select' Upang Piliin ang saklaw ng data sa mga header MyTable.HeaderRowRange.Select ' Piliin ang mga hilera ng header ng talahanayan MyTable.ListColumns (2) .Range.Select 'Upang piliin ang haligi 2 kasama ang header na MyTable.ListColumns (2) .DataBodyRange. Piliin ang' Upang piliin ang haligi 2 nang walang header End Sub 

Tulad nito, maaari naming gamitin ang koleksyon na "ListObject" upang maglaro sa mga excel table.

Bagay na dapat alalahanin

  • Ang VBA ListObject ay ang koleksyon ng mga bagay upang sumangguni sa mga excel table.
  • Upang ma-access muna ang koleksyon ng ListObject kailangan naming tukuyin kung ano ang worksheet na tinutukoy namin.