Λίστα αντικειμένων VBA - Οδηγός για ListObject Excel Tables στο Excel VBA

Πίνακας περιεχομένων

Τι είναι το ListObjects στο VBA;

Σε έναν πίνακα συνήθως αυτό που βλέπουμε είναι ένα σύνολο δεδομένων, αλλά στην ορολογία VBA υπάρχουν πολύ περισσότερα όπως υπάρχει το εύρος του συνολικού εύρους λίστας δεδομένων, η στήλη είναι γνωστή ως στήλη λίστας και η σειρά είναι γνωστή ως σειρά λίστας και ούτω καθεξής , έτσι ώστε να έχουμε πρόσβαση σε αυτές τις ιδιότητες έχουμε μια ενσωματωμένη συνάρτηση γνωστή ως Listobjects και η οποία χρησιμοποιείται με τη συνάρτηση φύλλου εργασίας.

Το VBA ListObject είναι ένας τρόπος αναφοράς στους πίνακες excel ενώ γράφετε τον κώδικα VBA. Χρησιμοποιώντας τα VBA LISTOBJECTS, μπορούμε να δημιουργήσουμε, να διαγράψουμε πίνακα και συνολικά μπορούμε να παίξουμε με πίνακες excel στον κώδικα VBA. Οι πίνακες Excel είναι δύσκολοι, αρχάριοι, και ακόμη και σε κάποιο βαθμό, οι χρήστες ενδιάμεσου επιπέδου δυσκολεύονται να εργαστούν με πίνακες. Δεδομένου ότι αυτό το άρθρο αναφέρεται για την αναφορά πινάκων excel στην κωδικοποίηση VBA, είναι καλύτερα να έχετε καλές γνώσεις σχετικά με πίνακες στο excel.

Όταν τα δεδομένα μετατρέπονται σε πίνακες, δεν δουλεύουμε πλέον με μια σειρά κελιών. Αντίθετα, πρέπει να εργαστούμε με εύρη πινάκων, οπότε σε αυτό το άρθρο, θα σας δείξουμε πώς να εργαστείτε με πίνακες excel για να γράφετε αποτελεσματικά τους κωδικούς VBA.

Δημιουργία μορφής πίνακα χρησιμοποιώντας ListObjects στο Excel VBA

Για παράδειγμα, δείτε τα παρακάτω δεδομένα excel.

Χρησιμοποιώντας τον κώδικα ListObject VBA, θα δημιουργήσουμε μια μορφή πίνακα για αυτά τα δεδομένα.

  • Για αυτά τα δεδομένα πρώτα, πρέπει να βρούμε ποια είναι η τελευταία γραμμή και στήλη που χρησιμοποιήθηκε, επομένως ορίστε δύο μεταβλητές για να το βρείτε.

Κώδικας:

Sub List_Objects_Example1 () Dim LR ως Long Dim LC ως Long End Sub
  • Για να βρείτε την τελευταία γραμμή και στήλη χρησιμοποιήστε τον παρακάτω κωδικό.

Κώδικας:

LR = Κελιά (Rows.Count, 1). End (xlUp). Row LC = Cells (1, Columns.Count). End (xlToLeft). Στήλη
  • Τώρα ορίστε μια ακόμη μεταβλητή για να διατηρήσετε την αναφορά των δεδομένων.

Κώδικας:

Dim Rng ως εύρος
  • Τώρα ορίστε την αναφορά σε αυτήν τη μεταβλητή χρησιμοποιώντας τον παρακάτω κώδικα.

Κώδικας:

Ορισμός Rng = Κελιά (1, 1). Αλλαγή μεγέθους (LR, LC)

Τώρα πρέπει να χρησιμοποιήσουμε τη μέθοδο "ListObject.Add" VBA για να δημιουργήσουμε έναν πίνακα, και παρακάτω είναι η σύνταξη του ίδιου.

ListObject.Add (Πηγή, XlListObjectHasHeaders, Destination, TableStyleName)

Πηγή: Αυτό δεν είναι τίποτα για ποια περιοχή κελιών εισάγουμε τον πίνακα. Έτσι μπορούμε να παρέχουμε δύο επιχειρήματα εδώ, δηλαδή, "xlSrcRange" και "xlSrcExternal."

XlListObjectHasHeaders: Εάν ο πίνακας που εισάγει δεδομένα έχει κεφαλίδες ή όχι. Εάν ναι, μπορούμε να παρέχουμε "xlYes". Εάν όχι, μπορούμε να παρέχουμε "xlNo".

Προορισμός: Αυτό δεν είναι παρά το εύρος δεδομένων μας.

Στυλ πίνακα: Εάν θέλετε να εφαρμόσετε οποιοδήποτε στυλ πίνακα, μπορούμε να παρέχουμε στυλ.

  • Εντάξει, τώρα στο ενεργό φύλλο, δημιουργούμε τον πίνακα, οπότε ο παρακάτω κώδικας θα δημιουργούσε έναν πίνακα για εμάς.

Κώδικας:

Dim Ws As Set Sheet Works Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlΝαι, Προορισμός: = Rng
  • Μετά από αυτό, πρέπει να δώσουμε ένα όνομα σε αυτόν τον πίνακα.

Κώδικας:

Ws.ListObjects (1) .name = "EmpTable"
  • Ακολουθεί ο πλήρης κωδικός για την αναφορά σας.

Κώδικας:

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 ως εύρος Ορισμός Rng = Κελιά (1, 1). Αλλαγή μεγέθους (LR, LC) Dim Ws ως φύλλο εργασίας Ορισμός Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng Ws.ListObjects (1) .name = " EmpTable "End Sub

Εντάξει, ας τρέξουμε τον κώδικα και δείτε τη μαγεία

Δημιούργησε τον πίνακα στα αναφερόμενα δεδομένα και έδωσε το όνομα του πίνακα ως "EmpTable".

Μορφοποίηση πινάκων Excel με VBA ListObjects

Μόλις δημιουργηθεί ο πίνακας Excel, μπορούμε να εργαστούμε με πίνακες χρησιμοποιώντας τη συλλογή VBA ListObject.

  • Αρχικά, ορίστε τη μεταβλητή ως "ListObject".

Κώδικας:

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.

  • Παρακάτω είναι η λίστα των κωδικών δραστηριότητας για την αναφορά σας.

Κώδικας:

Sub List_Objects_Example2 () Dim MyTable As ListObject Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Για να επιλέξετε εύρος δεδομένων χωρίς κεφαλίδες MyTable.Range.Select' Για να επιλέξετε εύρος δεδομένων με κεφαλίδες MyTable.HeaderRowRange.Select ' Επιλέξτε σειρές κεφαλίδας πίνακα MyTable.ListColumns (2). Range.Select 'To select στήλη 2 συμπεριλαμβανομένης της κεφαλίδας MyTable.ListColumns (2) .DataBodyRange.Select' Για να επιλέξετε στήλη 2 χωρίς κεφαλίδα End Sub

Έτσι, μπορούμε να χρησιμοποιήσουμε τη συλλογή "ListObject" για να παίξουμε με τραπέζια excel.

Πράγματα που πρέπει να θυμάστε

  • Το VBA ListObject είναι η συλλογή αντικειμένων για αναφορά σε πίνακες excel.
  • Για να αποκτήσετε πρόσβαση στη συλλογή ListObject πρώτα, πρέπει να καθορίσετε ποιο φύλλο εργασίας αναφέρεται.

ενδιαφέροντα άρθρα...