Makro in einem anderen Workbook aufrufen mit Parametern
Schritt-für-Schritt-Anleitung
Um ein Makro in einem anderen Workbook mit Parametern aufzurufen, kannst du die folgende Syntax verwenden:
-
Stelle sicher, dass das Workbook, welches das Makro enthält, geöffnet ist.
-
Verwende den Befehl Application.Run
, um das Makro aufzurufen. Der allgemeine Aufbau sieht so aus:
Application.Run "WorkbookName.xls!MacroName", Parameter1, Parameter2, Parameter3
-
Beispiel für einen Aufruf mit Parametern:
Application.Run "Kanzlei.xls!HistorieSchreiben", ProzReg, strName, Rechnr, Dateiname
Achte darauf, dass die Parameter korrekt übergeben werden und dass die Klammern bei der Verwendung von Application.Run
beachtet werden.
Häufige Fehler und Lösungen
-
Syntaxfehler:
- Wenn du einen Syntaxfehler erhältst, überprüfe die Verwendung von Klammern. Bei der Verwendung von
Application.Run
sind Klammern erforderlich, wenn du die Rückgabe einer Funktion speichern möchtest, z.B.:
s = Application.Run("Kanzlei.xls!HistorieSchreiben", ProzReg, strName, Rechnr, Dateiname)
-
Makro nicht gefunden:
- Stelle sicher, dass der Name des Workbooks und das Makro korrekt geschrieben sind. Achte auch auf die Dateiendung und darauf, dass das Workbook geöffnet ist.
Alternative Methoden
Es gibt verschiedene Möglichkeiten, ein Makro aufzurufen:
-
Call-Anweisung:
Du kannst die Call
-Anweisung verwenden, um ein Makro aufzurufen, wenn du nur ein Workbook verwendest:
Call HistorieSchreiben(ProzReg, strName, Rechnr, Dateiname)
-
Direkter Aufruf ohne Application.Run
:
Wenn das Makro in dem aktuellen Workbook ist, kannst du es einfach so aufrufen:
HistorieSchreiben ProzReg, strName, Rechnr, Dateiname
Praktische Beispiele
Hier sind einige praktische Beispiele für die Verwendung von Application.Run
:
-
Makro ohne Rückgabewert:
Application.Run "Kanzlei.xls!HistorieSchreiben", "Wert1", "Wert2", "Wert3", "Wert4"
-
Makro mit Rückgabewert:
Dim result As Variant
result = Application.Run("Kanzlei.xls!HistorieSchreiben", "Wert1", "Wert2", "Wert3", "Wert4")
Tipps für Profis
- Verwende
Call
nur, wenn nötig: In vielen Fällen ist es einfacher, die Prozedur direkt aufzurufen, anstatt Application.Run
zu verwenden. Dies macht den Code klarer und einfacher zu lesen.
- Parameter überprüfen: Stelle sicher, dass die übergebenen Parameter die korrekten Datentypen haben, um Laufzeitfehler zu vermeiden.
- Klammern beachten: Achte darauf, dass die Klammern richtig gesetzt sind, da sie die Funktionsweise des Aufrufs beeinflussen können.
FAQ: Häufige Fragen
1. Kann ich ein Makro aus einem geschlossenen Workbook aufrufen?
Nein, das Workbook muss geöffnet sein, um das Makro mit Application.Run
aufzurufen.
2. Was passiert, wenn ich die falschen Parameter übergebe?
Wenn die Parameter nicht mit den erwarteten Datentypen übereinstimmen, kann es zu Laufzeitfehlern kommen. Überprüfe daher immer die Datentypen vor dem Aufruf.
3. Gibt es einen Unterschied zwischen Call
und Application.Run
?
Ja, Call
wird verwendet, um ein Makro im aktuellen Workbook oder in einem anderen Workbook ohne Rückgabewert aufzurufen, während Application.Run
auch Rückgabewerte verarbeiten kann und häufig für Makros in anderen Workbooks verwendet wird.