Ich bin grad nicht fündig geworden.
Was muss ich meinem Code voranstellen, dass dieser bei Aufruf immer in der gerade aktiven Tabelle ausgeführt wird?
Danke für Rückmeldung.
Peter
ActiveSheet.Range("A1") = "blablabla"
bezieht sich immer auf das aktive Tabellenblatt. Ein "ActiveSheet" voranzustellen ist allerdings nur erforderlich, wenn dein Code sich im Klassenmodul eines Tabellenblattes befindet. Range("A1") = "blablabla"
bezieht sich im Modul eines Tabellenblattes auf dieses Tabellenblatt aber in einem allgemeinen Modul auf das aktive Tabellenblatt. Mit vorangestelltem "ActiveSheet" bist du auf jeden Fall auf der sicheren Seite.
Sub Makro1()
' Tastenkombination: Strg+i
Call Makro1 'aus Workbook, in dem das Makro abgespeichert ist
Call Makro2 'aus Workbook , welches beim Start des Makros aktiv ist
Columns("J:J").Select
Application.Goto Reference:="C10"
Selection.Insert Shift:=xlToRight
Application.Goto Reference:="R3C11"
ActiveCell.FormulaR1C1 = "'2006"
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
End With
Application.Goto Reference:="R5C11"
ActiveCell.FormulaR1C1 = "=R[9]C"
End Sub
Run "DateinameOhneEndung!Makroname"
Nach vorigem Muster wird mit folgender Zeile das Makro "Berechnen" in der Arbeitsmappe "Umsatz.xls" gestartetRun "Umsatz!Berechnen"
Um das Makro "Berechnen" in der aktiven Arbeitsmappe zu starten, nimmst du folgende Zeile:Run Left(ActiveWorkbook.Name, Len(ActiveWorkbook)-4) & "!Berechnen"
Gruss IngolfUm ein Makro in der aktiven Arbeitsmappe oder dem aktiven Arbeitsblatt auszuführen, kannst du den folgenden Ansatz verwenden. Dies ist besonders nützlich, wenn du mehrere Arbeitsmappen bearbeitest.
Makro erstellen: Erstelle dein Makro, das die gewünschten Änderungen vornimmt. Achte darauf, dass du ActiveSheet
oder ActiveWorkbook
verwendest, um sicherzustellen, dass dein Code auf das aktuell ausgewählte Arbeitsblatt oder die Arbeitsmappe zugreift.
Beispiel:
Sub BeispielMakro()
ActiveSheet.Range("A1").Value = "Hallo Welt"
End Sub
Makro aufrufen: Wenn du ein anderes Makro aufrufen möchtest, das in einem separaten Workbook gespeichert ist, nutze den Run
-Befehl.
Beispiel:
Run "DeinWorkbookName!DeinMakroName"
Verwende ThisWorkbook
und ActiveWorkbook
: Um Unterschiede zwischen ThisWorkbook
und ActiveWorkbook
zu verstehen, bedenke, dass ThisWorkbook
auf das Workbook verweist, das den Code enthält, während ActiveWorkbook
auf das aktuell aktive Workbook zeigt.
Fehler: Makro wird im falschen Workbook ausgeführt
ActiveWorkbook
verwendest, wenn du auf das aktive Workbook zugreifen möchtest. ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = "Test"
Fehler: Bezug auf das falsche Arbeitsblatt
ActiveSheet
, um sicherzustellen, dass dein Code auf das aktive Arbeitsblatt angewendet wird.Direkter Zugriff auf das aktive Arbeitsblatt: Du kannst auch direkt auf das aktive Arbeitsblatt zugreifen, ohne den Namen des Arbeitsblattes zu kennen.
Beispiel:
With ActiveSheet
.Range("B1").Value = "Neuer Wert"
End With
Verwendung von ThisWorkbook
: Wenn du sicherstellen möchtest, dass dein Makro sich immer auf das Workbook bezieht, in dem es gespeichert ist, verwende ThisWorkbook
.
Beispiel:
ThisWorkbook.Sheets("Sheet1").Range("C1").Value = "Test"
Wert in aktive Zelle einfügen:
Sub WertInAktiveZelle()
ActiveCell.Value = "Neuer Wert"
End Sub
Durch alle aktiven Arbeitsblätter iterieren:
Sub IteriereDurchAktiveBlätter()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("A1").Value = "Aktives Blatt: " & ws.Name
Next ws
End Sub
ActiveSheet
, um die Flexibilität zu erhöhen, besonders wenn du mit mehreren Arbeitsmappen arbeitest.1. Wie rufe ich ein Makro in einer anderen Arbeitsmappe auf?
Um ein Makro in einer anderen Arbeitsmappe auszuführen, verwende den Run
-Befehl mit dem Namen der Arbeitsmappe und des Makros. Beispiel:
Run "AndereMappe!MakroName"
2. Was ist der Unterschied zwischen ThisWorkbook
und ActiveWorkbook
?
ThisWorkbook
bezieht sich auf die Arbeitsmappe, in der der Code läuft, während ActiveWorkbook
die aktuell aktive Arbeitsmappe ist. Dies ist wichtig, um sicherzustellen, dass dein Makro die richtigen Daten bearbeitet.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen