Senarai Objektif VBA - Panduan untuk Jadual List ListObject di Excel VBA

Apakah ListObjects di VBA?

Dalam jadual biasanya apa yang kita lihat adalah kumpulan data tetapi dalam terminologi VBA terdapat lebih banyak lagi seperti terdapatnya julat jumlah senarai data, lajur tersebut dikenali sebagai lajur daftar dan baris dikenali sebagai baris senarai dan sebagainya , jadi untuk mengakses sifat ini, kita memiliki fungsi bawaan yang dikenal sebagai Listobjects dan yang digunakan dengan fungsi lembaran kerja.

VBA ListObject adalah cara merujuk jadual excel semasa menulis kod VBA. Dengan menggunakan VBA LISTOBJECTS, kita dapat membuat, menghapus jadual, dan secara keseluruhannya kita dapat bermain-main dengan jadual excel dalam kod VBA. Jadual Excel sukar, pemula, dan bahkan pada tahap tertentu, pengguna peringkat pertengahan sukar untuk bekerja dengan jadual. Oleh kerana artikel ini membincangkan tentang merujuk jadual excel dalam pengekodan VBA, lebih baik anda mempunyai pengetahuan yang baik tentang jadual di excel.

Apabila data ditukar menjadi jadual, kami tidak lagi berfungsi dengan pelbagai sel. Sebaliknya, kita perlu bekerja dengan julat jadual, jadi dalam artikel ini, kami akan menunjukkan kepada anda cara bekerja dengan jadual excel untuk menulis kod VBA dengan cekap.

Buat Format Jadual Menggunakan ListObjects di Excel VBA

Contohnya, lihat data excel di bawah.

Dengan menggunakan kod VBA ListObject, kami akan membuat format jadual untuk data ini.

  • Untuk data ini terlebih dahulu, kita perlu mencari baris & lajur yang terakhir digunakan, jadi tentukan dua pemboleh ubah untuk mencarinya.

Kod:

Sub List_Objects_Contoh1 () Dim LR Selagi Dim LC Sebagai Long End Sub
  • Untuk mencari baris dan lajur yang terakhir digunakan, gunakan kod di bawah.

Kod:

LR = Sel (Rows.Count, 1). End (xlUp). Baris LC = Sel (1, Columns.Count). End (xlToLeft). Column
  • Sekarang tentukan satu lagi pemboleh ubah untuk menyimpan rujukan data.

Kod:

Dim Rng Sebagai Julat
  • Sekarang tetapkan rujukan ke pemboleh ubah ini dengan menggunakan kod di bawah.

Kod:

Tetapkan Rng = Sel (1, 1). Ubah saiz (LR, LC)

Sekarang kita perlu menggunakan kaedah "ListObject.Add" VBA untuk membuat jadual, dan di bawah ini adalah sintaks yang sama.

ListObject.Add (Sumber, XlListObjectHasHeaders, Destinasi, TableStyleName)

Sumber: Ini bukan untuk sel mana kita memasukkan jadual. Oleh itu, kami dapat memberikan dua argumen di sini, iaitu, "xlSrcRange" dan "xlSrcExternal."

XlListObjectHasHeaders: Sekiranya jadual yang memasukkan data mempunyai tajuk atau tidak. Sekiranya ya, kami dapat memberikan "xlYa." Sekiranya tidak, kami dapat memberikan "xlNo."

Destinasi: Ini tidak lain adalah julat data kami.

Gaya Meja: Sekiranya anda ingin menerapkan gaya meja apa pun, kami dapat menyediakan gaya.

  • Ok, sekarang dalam lembaran aktif, kami membuat jadual, jadi kod di bawah akan membuat jadual untuk kami.

Kod:

Dim Ws Sebagai Lembaran Kerja Tetapkan Ws = Lembar Aktif Ws.ListObjects.Tambah xlSrcRange, xllistobjecthasheaders: = xlYa, Destinasi: = Rng
  • Selepas ini, kita perlu memberikan nama pada jadual ini.

Kod:

Ws.ListObjects(1).name = "EmpTable"
  • Below is the full code for your reference.

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 Set Rng = Cells(1, 1).Resize(LR, LC) Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders:=xlYes, Destination:=Rng Ws.ListObjects(1).name = "EmpTable" End Sub

Ok, let’s run the code and see the magic.

It has created the table to the mentioned data and given the table name as “EmpTable.”

Formatting Excel Tables with VBA ListObjects

Once the Excel table has been created, we can work with tables by using VBA ListObject collection.

  • First, define the variable as “ListObject.”

Code:

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.

  • Berikut adalah senarai kod aktiviti untuk rujukan anda.

Kod:

Sub List_Objects_Example2 () Dim MyTable Sebagai ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Untuk Memilih julat data tanpa tajuk MyTable.Range.Select' Untuk Memilih julat data dengan tajuk MyTable.HeaderRowRange.Select 'Select'. Pilih baris tajuk meja MyTable.ListColumns (2). Julat. Pilih 'Untuk memilih lajur 2 termasuk tajuk MyTable. Daftar Kolom (2). DataBodyRange. Pilih' Untuk memilih lajur 2 tanpa tajuk Akhir Sub

Seperti ini, kita dapat menggunakan koleksi "ListObject" untuk bermain-main dengan tabel excel.

Perkara yang Perlu Diingat

  • VBA ListObject adalah kumpulan objek untuk merujuk jadual excel.
  • Untuk mengakses koleksi ListObject terlebih dahulu, kita perlu menentukan lembaran kerja yang dimaksudkan.

Artikel menarik...