VBA ListObjects - Handbuch zu ListObject Excel-Tabellen in Excel VBA

Inhaltsverzeichnis

Was sind ListObjects in VBA?

In einer Tabelle sehen wir normalerweise einen Datensatz, aber in der VBA-Terminologie gibt es viel mehr, z. B. gibt es einen Bereich des gesamten Datenlistenbereichs, die Spalte wird als Listenspalte bezeichnet und die Zeile wird als Listenzeile bezeichnet und so weiter Um auf diese Eigenschaften zugreifen zu können, verfügen wir über eine integrierte Funktion, die als Listobjects bezeichnet wird und mit der Arbeitsblattfunktion verwendet wird.

Mit VBA ListObject können Sie beim Schreiben des VBA-Codes auf die Excel-Tabellen verweisen. Mit VBA LISTOBJECTS können wir Tabellen erstellen, löschen und vollständig mit Excel-Tabellen im VBA-Code herumspielen. Excel-Tabellen sind knifflig, Anfänger und selbst für fortgeschrittene Benutzer ist es bis zu einem gewissen Grad schwierig, mit Tabellen zu arbeiten. Da in diesem Artikel über das Verweisen auf Excel-Tabellen in der VBA-Codierung gesprochen wird, ist es besser, wenn Sie über gute Kenntnisse in Excel-Tabellen verfügen.

Wenn die Daten in Tabellen konvertiert werden, arbeiten wir nicht mehr mit einem Zellbereich. Vielmehr müssen wir mit Tabellenbereichen arbeiten. In diesem Artikel zeigen wir Ihnen, wie Sie mit Excel-Tabellen arbeiten, um VBA-Codes effizient zu schreiben.

Erstellen Sie das Tabellenformat mit ListObjects in Excel VBA

Schauen Sie sich zum Beispiel die folgenden Excel-Daten an.

Mit dem VBA ListObject-Code erstellen wir ein Tabellenformat für diese Daten.

  • Für diese Daten müssen wir zuerst die zuletzt verwendete Zeile und Spalte ermitteln. Definieren Sie daher zwei Variablen, um diese zu ermitteln.

Code:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long End Sub
  • Verwenden Sie den folgenden Code, um die zuletzt verwendete Zeile und Spalte zu finden.

Code:

LR = Zellen (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column
  • Definieren Sie nun eine weitere Variable, die die Referenz der Daten enthält.

Code:

Dim Rng As Range
  • Stellen Sie nun den Verweis auf diese Variable mit dem folgenden Code ein.

Code:

Setze Rng = Zellen (1, 1). Größe ändern (LR, LC)

Jetzt müssen wir die VBA-Methode "ListObject.Add" verwenden, um eine Tabelle zu erstellen. Nachfolgend finden Sie die Syntax derselben.

ListObject.Add (Quelle, XlListObjectHasHeaders, Ziel, TableStyleName)

Quelle: Dies ist nichts für welchen Zellbereich wir die Tabelle einfügen. Daher können wir hier zwei Argumente angeben , nämlich "xlSrcRange" und "xlSrcExternal".

XlListObjectHasHeaders: Wenn die Tabelle, in die Daten eingefügt werden, Überschriften enthält oder nicht. Wenn ja, können wir "xlYes" bereitstellen. Wenn nicht, können wir "xlNo" bereitstellen.

Ziel: Dies ist nichts anderes als unser Datenbereich.

Tabellenstil: Wenn Sie einen Tabellenstil anwenden möchten, können wir Stile bereitstellen.

  • Ok, jetzt im aktiven Blatt erstellen wir die Tabelle, sodass der folgende Code eine Tabelle für uns erstellen würde.

Code:

Dim Ws As Worksheet Set Ws = ActiveSheet Ws.ListObjects.Add xlSrcRange, xllistobjecthasheaders: = xlYes, Destination: = Rng
  • Danach müssen wir dieser Tabelle einen Namen geben.

Code:

Ws.ListObjects (1) .name = "EmpTable"
  • Unten finden Sie den vollständigen Code für Ihre Referenz.

Code:

Sub List_Objects_Example1 () Dim LR As Long Dim LC As Long LR = Zellen (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, lass uns den Code ausführen und die Magie sehen.

Es hat die Tabelle mit den genannten Daten erstellt und den Tabellennamen als "EmpTable" angegeben.

Formatieren von Excel-Tabellen mit VBA ListObjects

Sobald die Excel-Tabelle erstellt wurde, können wir mithilfe der VBA ListObject-Auflistung mit Tabellen arbeiten.

  • Definieren Sie zunächst die Variable als "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.

  • Unten finden Sie eine Liste der Aktivitätscodes als Referenz.

Code:

Sub List_Objects_Example2 () MyTable als ListObject dimmen Set MyTable = ActiveSheet.ListObjects ("EmpTable") MyTable.DataBodyRange.Select 'Zum Auswählen eines Datenbereichs ohne Header MyTable.Range.Select' Zum Auswählen des Datenbereichs mit den Headern MyTable.HeaderRowRel Tabellenüberschriftenzeilen auswählen MyTable.ListColumns (2) .Range.Select 'Zum Auswählen von Spalte 2 einschließlich der Überschrift MyTable.ListColumns (2) .DataBodyRange.Select' Zum Auswählen von Spalte 2 ohne Überschrift End Sub

So können wir die "ListObject" -Sammlung verwenden, um mit Excel-Tabellen herumzuspielen.

Dinge, an die man sich erinnern sollte

  • VBA ListObject ist die Sammlung von Objekten, die auf Excel-Tabellen verweisen.
  • Um zuerst auf die ListObject-Auflistung zuzugreifen, müssen Sie angeben, auf welches Arbeitsblatt wir uns beziehen.

Interessante Beiträge...