Excel-VBA-Arbeitsmappe und Arbeitsblatt-Objekt
Erfahren Sie mehr über die Arbeitsmappe und Arbeitsblatt-Objekt in Excel VBA.
Objekthierarchie
In Excel VBA kann ein Objekt enthält ein anderes Objekt, und das Objekt ein anderes Objekt enthalten kann, usw. Mit anderen Worten umfasst die Excel-VBA-Programmierung mit einer Objekthierarchie arbeiten. Das klingt vielleicht ziemlich verwirrend, aber wir werden es klar machen.
Die Mutter aller Objekte ist Excel selbst. Wir nennen es das Application-Objekt. Das Anwendungsobjekt enthält andere Objekte. Zum Beispiel kann das Workbook-Objekt (Excel-Datei). Dies kann jede Arbeitsmappe, die Sie erstellt haben.
Das Workbook-Objekt enthält andere Objekte, wie zum Beispiel das Objekt Arbeitsblatt. Das Arbeitsblatt-Objekt enthält andere Objekte, wie das Range-Objekt.
Der Erstellen Sie ein Makro Kapitel zeigt, wie Code auszuführen, indem Sie auf einem Befehlsschaltfläche klicken. Wir benutzten die folgende Codezeile:
Range("A1").Value = "Hello"
aber was wir wirklich gemeint war:
Application.Workbooks("create-a-macro").Worksheets(1).Range("A1").Value = "Hello"
Hinweis: Die Objekte werden mit einem Punkt verbunden. Glücklicherweise haben wir nicht eine Codezeile auf diese Weise hinzuzufügen. Das ist, weil wir unsere Befehlsschaltfläche in Link gesetzt: /vba-excel-files-create-a-macro.xls [create-a-macro.xlsm]
, auf dem ersten Arbeitsblatt. Beachten Sie, dass, wenn Sie wollen die Dinge auf unterschiedliche Arbeitsblätter ändern, können Sie das Arbeitsblatt-Objekt umfassen müssen. Weiter lesen.
Sammlungen
Sie haben vielleicht bemerkt, dass Arbeitsmappen und Arbeitsblätter beide Plural sind. Das ist, weil sie Sammlungen sind. Die Auflistung Workbooks enthält alle Workbook-Objekte, die derzeit geöffnet sind. Die Arbeitsblätter Sammlung enthält alle Arbeitsblatt-Objekte in einer Arbeitsmappe.
Sie können zu einem Mitglied der Sammlung verweisen, zum Beispiel ein einzelnes Objekt Arbeitsblatt, in dreierlei Hinsicht.
-
Mit dem Arbeitsblatt-Namen.
Worksheets("Sales").Range("A1").Value = "Hello"
-
Mit der Indexnummer (1 ist das erste Arbeitsblatt beginnend von links).
Worksheets(1).Range("A1").Value = "Hello"
-
Mit dem Codenamen.
Sheet1.Range("A1").Value = "Hello"
Um die Codenamen von einem Arbeitsblatt zu sehen, öffnen Sie den Visual Basic Editor. Im Projekt-Explorer ist der erste Name der Codename. Der zweite Name ist der Arbeitsblatt-Name (Sales).
Hinweis: Der Codename bleibt gleich, wenn Sie den Arbeitsblatt-Namen ändern oder die Reihenfolge der Arbeitsblatt so dies der sicherste Weg ist, um ein Arbeitsblatt zu verweisen. Klicken Sie auf Ansicht, Fenster Eigenschaften den Codenamen von einem Arbeitsblatt zu ändern. Es ist ein Nachteil, man kann nicht die Codenamen verwenden, wenn Sie ein Arbeitsblatt in einer anderen Arbeitsmappe verweisen.
Eigenschaften und Methoden
Werfen wir nun einen Blick auf einige Eigenschaften und Methoden der Arbeitsmappen und Arbeitsblätter Sammlung. Eigenschaften sind etwas, das eine Sammlung hat (sie beschreiben die Sammlung), während Methoden etwas tun (sie führen eine Aktion mit einer Sammlung).
Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die Codezeilen:
-
Die Add-Methode der Auflistung Workbooks erstellt eine neue Arbeitsmappe.
Workbooks.Add
Hinweis: Die Add-Methode der Worksheets-Auflistung erstellt ein neues Arbeitsblatt.
-
Der Count-Eigenschaft der Sammlung von Arbeitsblättern zählt die Anzahl der Arbeitsblätter in einer Arbeitsmappe.
MsgBox Worksheets.Count
Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:
Hinweis: Die Count-Eigenschaft der Auflistung Workbooks zählt die Anzahl der aktiven Arbeitsmappe.