VBA ThisWorkbook

Excel VBA ThisWorkbook

VBA ThisWorkbook bezeichnet die Arbeitsmappe, in die wir den Excel-Code schreiben. Wenn Sie beispielsweise in der Arbeitsmappe mit dem Namen "Sales 2019.xlsx" arbeiten, verweisen wir normalerweise auf diese Arbeitsmappe.

Arbeitsmappen („Sales 2019.xlsx“). Aktivieren

Der Code aktiviert die Arbeitsmappe mit dem Namen "Sales 2019.xlsx".

Anstatt so zu schreiben, können wir einfach den folgenden VBA-Code schreiben.

ThisWorkbook.Activate '

Hier bezieht sich dieses Arbeitsbuch auf die Arbeitsmappe, in die wir den Code schreiben. Durch Verweisen auf dieses Wort können wir alle Aufgaben in der aktuellen Arbeitsmappe ausführen und langen Code mit einem vollständig benannten Arbeitsmappennamen vermeiden.

Ich bin sicher, dass Sie auch das Wort "Active Workbook" gesehen haben müssen, wenn Sie sich auf den anderen Code beziehen. Dies ist auch eines der häufig verwendeten Wörter bei der Codierung. Wir werden sehen, was die Unterschiede zwischen diesen beiden Wörtern im Grunde sind.

Arbeiten mit ThisWorkbook in Excel VBA

Das Referenzwort "ThisWorkbook" ist zuverlässiger als das Workbooks-Objektqualifikationsmerkmal. Eine der menschlichen Tendenzen besteht darin, den Arbeitsmappennamen falsch einzugeben, was zu einer Fehlermeldung führt.

Ein weiterer wichtiger Grund, warum VBA ThisWorkbook zuverlässiger ist, denn nur für den Fall, dass wir den Namen der Arbeitsmappe ändern, müssen wir den Code ändern, da wir das Wort „ThisWorkbook“ verwendet haben.

Daher ist es sicherer, dieses Arbeitsbuch zu verwenden, um auf die Arbeitsmappe zu verweisen, in der wir den Code schreiben.

Sie können diese VBA ThisWorkbook Excel-Vorlage hier herunterladen - VBA ThisWorkbook Excel-Vorlage

Beispiel 1

Wir werden einige Beispiele sehen, in denen wir das Wort ThisWorkbook in Excel VBA verwenden können. Der folgende Code druckt den Namen der Arbeitsmappe.

Code:

 Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Wenn Sie den Code manuell oder mit der Taste F5 ausführen, zeigt der obige Code den Arbeitsmappennamen im Meldungsfeld in VBA an.

Beispiel 2

Anstatt das Wort "Diese Arbeitsmappe" zu verwenden, können wir Variablen verwenden, um die Arbeitsmappenreferenz festzulegen und sogar die Länge des Codes in VBA drastisch zu reduzieren. Schauen Sie sich zum Beispiel zuerst den folgenden Code an.

Code:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Activate ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub 

Der obige Code hat "ThisWorkbook" in jeder Codezeile verwendet. Wie schwer es ist, das Wort jedes Mal einzugeben. Wir können dies also minimieren, indem wir Variablen verwenden.

Schauen Sie sich nun den folgenden Code mit der Variablen an.

Code:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Aktivieren Sie Wb.Save Wb.Close Wb.SaveAs End Sub 

Sieht wunderschön aus, nicht wahr?

Lassen Sie mich Ihnen den Code erklären.

Zuerst habe ich die Variable als Arbeitsmappenobjekt deklariert.

Dim Wb als Arbeitsmappe

Da dies eine Objektvariable ist, müssen wir den Verweis auf die jeweilige Arbeitsmappe festlegen. Also habe ich die Referenz "ThisWorkbook" verwendet.

Setze Wb = ThisWorkbook

Jetzt wird die Variable "Wb" auf die Arbeitsmappe verwiesen, in der wir gerade den Code schreiben. Von nun an müssen wir in der Prozedur nicht mehr das Wort "ThisWorkbook" verwenden, sondern können die Variable "Wb" verwenden.

Active Workbook vs ThisWorkbook in Excel VBA

Wie ich am Anfang des Artikels sagte, verwenden viele Codierer die Wörter Active Workbook & ThisWorkbook sehr oft in ihrer VBA-Codierung. Als Leser oder neuer Lernender ist es nicht leicht, diese beiden zu verstehen. Lassen Sie mich Ihnen einige der Unterschiede erklären.

Unterschied Nr. 1: Bedeutung

  • Aktive Arbeitsmappe: Aktive Arbeitsmappe ist nicht unbedingt die Arbeitsmappe, in die wir gerade den Code schreiben. Wenn Sie mehrere geöffnete Arbeitsmappen haben und die Arbeitsmappe auf Ihrem Bildschirm angezeigt wird, wird sie als aktive Arbeitsmappe betrachtet .
  • ThisWorkbook: ThisWorkbook ist immer die Arbeitsmappe, in die wir gerade den Code schreiben.

Unterschied 2: Fehlerchancen

  • Aktive Arbeitsmappe: Die Verwendung von Aktiv in der Codierung kann zu vielen Fehlern und Verwirrung führen, da wir nie wissen, welche Arbeitsmappe aktiv ist, es sei denn, wir erwähnen ausdrücklich die zu aktivierende Arbeitsmappe, bevor wir das Wort Aktive Arbeitsmappe verwenden.
  • ThisWorkbook: ThisWorkbook kann nicht schief gehen, da es keine Rolle spielt, welche Arbeitsmappe aktiv ist. Es wird immer die Referenz der Arbeitsmappe verwendet, in die wir den Code schreiben.