VBA ListObjects

Apa ListObjects di VBA?

Dalam tabel biasanya yang kita lihat adalah kumpulan data tetapi dalam terminologi VBA ada lebih banyak lagi seperti ada kisaran kisaran daftar data total, kolom dikenal sebagai kolom daftar dan baris dikenal sebagai baris daftar dan sebagainya , jadi untuk mengakses properti ini kami memiliki fungsi bawaan yang dikenal sebagai Listobjects dan yang digunakan dengan fungsi lembar kerja.

VBA ListObject adalah cara merujuk ke tabel excel saat menulis kode VBA. Dengan menggunakan VBA LISTOBJECTS kita bisa membuat, menghapus tabel, dan secara total kita bisa bermain-main dengan tabel excel dalam kode VBA. Tabel Excel rumit, pemula, dan bahkan pengguna tingkat menengah merasa kesulitan untuk bekerja dengan tabel. Karena artikel ini berbicara tentang mereferensikan tabel excel dalam pengkodean VBA, sebaiknya Anda memiliki pengetahuan yang baik tentang tabel di excel.

Ketika data dikonversi ke tabel, kami tidak lagi bekerja dengan rentang sel, tetapi kami perlu bekerja dengan rentang tabel, jadi dalam artikel ini, kami akan menunjukkan kepada Anda cara bekerja dengan tabel excel untuk menulis kode VBA secara efisien.

Buat Format Tabel Menggunakan ListObjects di Excel VBA

Misalnya, lihat data excel di bawah ini.

Dengan menggunakan kode VBA ListObject kami akan membuat format tabel untuk data ini.

Anda dapat mengunduh Template Excel ListObjects VBA ini di sini - Template Excel ListObjects VBA
  • Untuk data ini pertama-tama kita perlu mencari baris & kolom yang terakhir digunakan, jadi tentukan dua variabel untuk menemukannya.

Kode:

 Sub List_Objects_Example1 () Redup LR As Long End LC As Long End Sub 

  • Untuk menemukan baris dan kolom yang terakhir digunakan gunakan kode di bawah ini.

Kode:

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

  • Sekarang tentukan satu variabel lagi untuk menampung referensi data.

Kode:

 Redupkan Rng Sebagai Rentang 

  • Sekarang atur referensi ke variabel ini dengan menggunakan kode di bawah ini.

Kode:

 Set Rng = Sel (1, 1]. Ubah ukuran (LR, LC)

Sekarang kita perlu menggunakan metode VBA "ListObject.Add" untuk membuat tabel dan di bawah ini adalah sintaks yang sama.

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

Sumber: Ini bukan untuk rentang sel mana kita menyisipkan tabel. Jadi kami dapat menyediakan dua argumen di sini yaitu "xlSrcRange" dan "xlSrcExternal".

XlListObjectHasHeaders: Jika tabel yang memasukkan data memiliki header atau tidak. Jika ya kami dapat memberikan "xlYes" jika tidak kami dapat memberikan "xlNo".

Tujuan: Ini tidak lain adalah jangkauan data kami.

Gaya Tabel: Jika Anda ingin menerapkan gaya tabel apa pun, kami dapat menyediakan gaya.

  • Ok, sekarang di lembar aktif kita membuat tabel, jadi kode di bawah ini akan membuat tabel untuk kita.

Kode:

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

  • Setelah ini, kita perlu memberi nama pada tabel ini.

Kode:

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

  • Di bawah ini adalah kode lengkap untuk referensi Anda.

Kode:

 Sub List_Objects_Example1 () Dim LR As Long Redup 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 = Sel (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, mari kita jalankan kodenya dan lihat keajaibannya.

Ini telah membuat tabel ke data yang disebutkan dan diberi nama tabel sebagai "EmpTable" .

Memformat Tabel Excel dengan VBA ListObjects

Setelah tabel Excel dibuat, kita dapat bekerja dengan tabel menggunakan koleksi vba ListObject.

  • Pertama, tentukan variabel sebagai "ListObject".

Kode:

 Sub List_Objects_Example2 () Redupkan MyTable Sebagai ListObject End Sub 

  • Sekarang atur referensi ke variabel ini dengan menggunakan nama tabel.

Kode:

 Sub List_Objects_Example2 () Redupkan MyTable Sebagai ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") End Sub 

Sekarang variabel "MyTable" memegang referensi untuk tabel "EmpTable".

  • Masukkan nama variabel dan beri titik untuk melihat properti dan metode dari VBA ListObject.

Misalnya, jika kita ingin memilih seluruh tabel maka kita perlu menggunakan objek "Range" dan di bawah ini, kita perlu menggunakan metode "Select".

Kode:

MyTable.Range.Select

Ini akan memilih seluruh tabel data termasuk judulnya.

  • Jika Anda ingin memilih hanya isi tabel tanpa header maka kita perlu menggunakan "DataBodyRange".

Kode:

MyTable.DataBodyRange.Select

Seperti ini, kita bisa bermain-main dengan tabel.

  • Below is the list of activity codes for your reference.

Code:

 Sub List_Objects_Example2() Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects("EmpTable") MyTable.DataBodyRange.Select 'To Select data range without headers MyTable.Range.Select 'To Select data range with headers MyTable.HeaderRowRange.Select 'To Select table header rows MyTable.ListColumns(2).Range.Select 'To select column 2 including header MyTable.ListColumns(2).DataBodyRange.Select 'To select column 2 without header End Sub 

Like this, we can use the “ListObject” collection to play around with excel tables.

Things to Remember

  • VBA ListObject is the collection of objects to reference excel tables.
  • To access ListObject collection first we need to specify what worksheet we are referring to is.