VBA ListObjects - Panduan untuk Tabel Excel ListObject di Excel VBA

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 sampai batas tertentu, pengguna tingkat menengah merasa sulit untuk bekerja dengan tabel. Karena artikel ini membahas tentang mereferensikan tabel excel dalam pengkodean VBA, sebaiknya Anda memiliki pengetahuan yang baik tentang tabel di excel.

Saat data diubah menjadi tabel, kami tidak lagi bekerja dengan rentang sel. Sebaliknya, 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.

  • Untuk data ini terlebih dahulu, 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 memberikan 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 = Sel (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.

Itu 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() 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.

  • Di bawah ini adalah daftar kode aktivitas untuk referensi Anda.

Kode:

Sub List_Objects_Example2 () Redupkan MyTable Sebagai ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Untuk Memilih rentang data tanpa header MyTable.Range.Select' Untuk Memilih kisaran data dengan header MyTable.HeaderRowRange.Select 'To Pilih baris header tabel MyTable.ListColumns (2) .Range.Select 'Untuk memilih kolom 2 termasuk header MyTable.ListColumns (2) .DataBodyRange.Select' Untuk memilih kolom 2 tanpa header End Sub

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

Hal-hal untuk diingat

  • VBA ListObject adalah kumpulan objek untuk mereferensikan tabel excel.
  • Untuk mengakses koleksi ListObject terlebih dahulu, kita perlu menentukan lembar kerja apa yang kita maksud.

Artikel yang menarik...