Frage zu VBA:
Ich möchte von einem Sub in einem Projekt_A ein anderes Sub in Projekt_B aufrufen. _A ist im aktuellen Workbook und _B in einem xla
Danke für die Hilfe
Um ein Sub aus einem anderen Projekt in Excel VBA aufzurufen, kannst Du den Befehl Application.Run verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Sub aufrufen möchtest, geladen ist.Sub in einem anderen Modul aufzurufen, verwende die folgende Syntax:
Application.Run "Projekt_B.xls!Makro_XYZ"
Hierbei ist Projekt_B.xls der Name Deiner Excel-Datei und Makro_XYZ der Name des Subs, den Du aufrufen möchtest.
Sub Parameter benötigt, kannst Du diese ebenfalls übergeben:
Application.Run "Projekt_B.xls!Makro_XYZ", "Parameter1"Subs speichern möchtest, kannst Du dies so tun:
Ergebnis = Application.Run("Projekt_K.xla!Makro_XYZ")Sub aufrufen möchtest, auch tatsächlich geöffnet ist. Wenn es nicht geladen ist, kann es nicht aufgerufen werden.Sub-Namen falsch zu schreiben.Sub zuzugreifen, das nicht öffentlich ist, wirst Du einen Fehler erhalten. Stelle sicher, dass das Sub als Public deklariert ist.Wenn Du eine andere Methode ausprobieren möchtest, um ein Sub aus einem anderen Modul aufzurufen, kannst Du auch Folgendes nutzen:
Direktes Aufrufen: Wenn das Sub im gleichen Projekt ist, kannst Du es einfach mit dem Namen aufrufen:
Call Makro_XYZ
Nutze CallByName: Für dynamische Aufrufe kannst Du CallByName verwenden:
CallByName Objekt, "Methodenname", VbMethod
Hier sind einige praktische Beispiele, die Dir helfen, die Konzepte besser zu verstehen:
Ein einfaches Sub aufrufen:
Sub AufrufBeispiel()
Application.Run "MeinProjekt.xls!MeinMakro"
End Sub
Ein Sub mit Parameter aufrufen:
Sub ParameterBeispiel()
Application.Run "MeinProjekt.xls!MeinMakro", "MeinParameter"
End Sub
Ergebnis eines Subs speichern:
Sub ErgebnisBeispiel()
Dim Ergebnis As Variant
Ergebnis = Application.Run("MeinProjekt.xla!MeinMakro")
MsgBox Ergebnis
End Sub
Subs in verschiedenen Modulen gut strukturiert. Dies erleichtert das Auffinden und Aufrufen.Subs zu identifizieren und zu beheben.Subs, damit Du und andere Benutzer leicht verstehen, was jede Funktion macht.1. Kann ich ein Sub aus einem geschützten Projekt aufrufen?
Nein, Du kannst kein Sub aus einem geschützten Projekt aufrufen, solange Du nicht die entsprechenden Berechtigungen hast.
2. Funktioniert das auch in Excel Online?
Die Verwendung von VBA und das Aufrufen von Subs funktioniert nicht in Excel Online, da VBA nur in der Desktop-Version von Excel verfügbar ist.
3. Wie kann ich sicherstellen, dass das Projekt geladen ist?
Du kannst eine Überprüfung in Deinem Code einbauen, um sicherzustellen, dass das Projekt geöffnet ist, bevor Du versuchst, das Sub aufzurufen.