Wie verwende ich die vba-variable thisworkbook in excel?
In VBA können Sie die ThisWorkbook-Eigenschaft verwenden, um auf die Arbeitsmappe zu verweisen, in der Sie Code schreiben. Wenn Sie es verwenden, haben Sie Zugriff auf alle Eigenschaften und Methoden der aktuellen Arbeitsmappe. Einfach ausgedrückt: Sie können alle Aufgaben in der aktuellen Arbeitsmappe ausführen, ohne den Namen zu verwenden.
Angenommen, Sie möchten die Blätter in der aktuellen Arbeitsmappe zählen. Der Code, den Sie schreiben müssen, wäre wie folgt.
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub
Wenn Sie diesen Code ausführen, wird ein Meldungsfeld mit der Anzahl der Blätter in der aktuellen Arbeitsmappe angezeigt.
Wie gesagt, wenn Sie ThisWorkbook verwenden, erhalten Sie Zugriff auf die Eigenschaften und die Methode der aktuellen Arbeitsmappe. Sie können dies alles sehen, wenn Sie einen Punkt (.) eingeben, um die vollständige Liste anzuzeigen.
Nützliche Links: Ausführen eines Makros – Makrorecorder – Visual Basic Editor – Handbuch zu persönlichen Makros
Verwenden von ThisWorkbook mit einer Variablen
Als Nächstes zeige ich Ihnen ein echtes Codebeispiel für die Deklaration einer Variablen zur Verwendung der ThisWorkbook-Eigenschaft. Angenommen, Sie möchten in der aktuellen Arbeitsmappe mehrere Aktivitäten ausführen.
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
Im ersten Teil dieses Codes haben Sie eine Variable und geben ihr dann die Eigenschaft „ThisWorkbook“. Und dann haben Sie im zweiten Teil die WITH-Anweisung, um mehrere Aktivitäten mit der aktuellen Variablen durchzuführen.
ActiveWorkBook im Vergleich zu dieser Arbeitsmappe
Lassen Sie es mich Ihnen anhand einer einfachen Analogie erklären, also haben Sie in den nächsten zwei Minuten Geduld mit mir.
Sie haben zwei Arbeitsmappen gleichzeitig geöffnet (Buch1 und Buch2). Sie schreiben Code in Buch1, aber Buch2 ist zu diesem Zeitpunkt aktiv. Wenn Sie also diesen Code ausführen, der auf ActiveWorkbook verweist, wird diese Aktivität in Book2 ausgeführt .
Wenn Sie ThisWorkbook verwenden, verweist VBA jedoch immer auf die Arbeitsmappe, in der der Code geschrieben ist.
Hier ist die Sache: Es ist immer besser, ThisWorkbook zu verwenden, da es die Möglichkeit von Fehlern ausschließt.