Senarai Objektif 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 tahap pengguna 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 mengenai jadual di excel.

Apabila data ditukar menjadi jadual, kita tidak lagi bekerja dengan rangkaian sel tetapi 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.

Anda boleh memuat turun Templat VBA ListObjects Excel ini di sini - Templat VBA ListObjects Excel
  • Untuk data ini terlebih dahulu kita perlu mencari baris & lajur yang terakhir digunakan, jadi tentukan dua pemboleh ubah untuk mencari ini.

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 bawahnya 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 "xlYes" jika 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 kita membuat jadual, jadi kod di bawah ini akan membuat jadual untuk kita.

Kod:

 Dim Ws Sebagai Lembaran Kerja Set Ws = ActiveSheet Ws.ListObjects.Tambah xlSrcRange, xllistobjecthasheaders: = xlYa, Destinasi: = Rng

  • Selepas ini, kita perlu memberikan nama pada jadual ini.

Kod:

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

  • Berikut adalah kod penuh untuk rujukan anda.

Kod:

 Sub Senarai_Objeks_Contoh1 () Dim LR Sebagai Panjang Dim LC Sebagai Panjang LR = Sel (Rows.Count, 1). End (xlUp). Baris LC = Sel (1, Lajur.Jumlah). Akhir (xlToLeft) .Kolom Dim Rng Sebagai Julat Tetapkan Rng = Sel (1, 1). Ubah ukuran (LR, LC) Dim Ws Sebagai Lembaran Kerja Tetapkan Ws = ActiveSheet Ws.ListObjects.Tambah xlSrcRange, xllistobjecthasheaders: = xlYa, Destinasi: = Rng Ws.ListObjects (1) .nama = " EmpTable "Sub Akhir 

Ok, mari kita jalankan kodnya dan lihat keajaibannya.

Ini telah membuat tabel untuk data yang disebutkan dan memberikan nama tabel sebagai "EmpTable" .

Memformat Jadual Excel dengan VBA ListObjects

Setelah jadual Excel dibuat, kita dapat bekerjasama dengan jadual dengan menggunakan koleksi ListObject vba.

  • Pertama, tentukan pemboleh ubah sebagai "ListObject".

Kod:

 Sub Daftar_Objects_Contoh2 () Dimalapkan MyTable Sebagai SubObject End List 

  • Sekarang tetapkan rujukan ke pemboleh ubah ini dengan menggunakan nama jadual.

Kod:

 Sub List_Objects_Example2 () Dim MyTable Sebagai ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") Akhir Sub 

Sekarang pemboleh ubah "MyTable" memegang rujukan untuk jadual "EmpTable".

  • Masukkan nama pemboleh ubah dan letakkan titik untuk melihat sifat dan kaedah dari VBA ListObject.

Sebagai contoh, jika kita ingin memilih keseluruhan tabel maka kita perlu menggunakan objek "Range" dan di bawah ini, kita perlu menggunakan kaedah "Select".

Kod:

MyTable.Range.Select

Ini akan memilih keseluruhan jadual data termasuk tajuk.

  • Sekiranya anda ingin memilih hanya kandungan jadual tanpa tajuk maka kita perlu menggunakan "DataBodyRange".

Kod:

MyTable.DataBodyRange. Pilih

Seperti ini, kita boleh bermain-main dengan meja.

  • 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.