Wie übergibt man zwei Variablen von einem Excel-Makro an ein anderes?

Antwort

Um zwei Variablen von einem Excel-Makro an ein anderes zu übergeben, gibt es mehrere Möglichkeiten. Die gängigste und sauberste Methode ist, das zweite Makro als **Sub** oder **Function** mit Parametern zu definieren und die Variablen beim Aufruf zu übergeben. **Beispiel:** ```vba Sub Makro1() Dim var1 As String Dim var2 As Integer var1 = "Hallo" var2 = 42 Call Makro2(var1, var2) End Sub Sub Makro2(ByVal text As String, ByVal zahl As Integer) MsgBox "Text: " & text & vbCrLf & "Zahl: " & zahl End Sub ``` **Erklärung:** - `Makro1` definiert zwei Variablen und ruft `Makro2` auf, wobei die Variablen als Argumente übergeben werden. - `Makro2` nimmt die Werte als Parameter entgegen und kann sie weiterverarbeiten. **Alternativen:** - Du kannst auch **globale Variablen** (mit `Public` im Modulkopf) verwenden, aber das ist weniger empfehlenswert, da es zu unerwarteten Nebeneffekten führen kann. **Weitere Infos:** - [Microsoft: Sub procedures (VBA)](https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/sub-statement) - [Microsoft: Passing Arguments to Procedures (VBA)](https://learn.microsoft.com/de-de/office/vba/language/concepts/getting-started/passing-arguments-to-procedures) Diese Methode ist übersichtlich und entspricht den Best Practices in VBA.

Neue Frage stellen

Verwandte Fragen

Warum funktioniert das Excel-Makro mit Dim zeilen as String, Choose und Rows(zeilen).Hidden = True nicht?

Der Fehler liegt daran, dass du die Variable `zeilen` als `String` deklarierst, aber die Funktion `Rows(zeilen).Hidden = True` einen Bereich erwartet, der als Zeilenreferenz interpretiert werden kann.... [mehr]

Wie kann ein Excel-Makro in allen Blättern, auch ausgeblendeten, das Gitternetz ausblenden?

Um in allen Arbeitsblättern einer Excel-Arbeitsmappe – auch in ausgeblendeten – das Gitternetz auszublenden, kannst du folgendes VBA-Makro verwenden: ```vba Sub GitternetzInAllenBlae... [mehr]

Wie kann man mit einem Excel-Makro in allen Blättern Gitternetzlinien und Überschriften ausblenden?

Hier ist ein VBA-Makro, das in allen Arbeitsblättern einer Excel-Arbeitsmappe sowohl die Gitternetzlinien als auch die Überschriften (Zeilen- und Spaltenköpfe) ausblendet: ```vba Sub G... [mehr]

Gilt Application.ScreenUpdating=false auch für aufgerufene Makros in Excel?

Ja, der Befehl `Application.ScreenUpdating = False` gilt global für die gesamte Excel-Anwendung und damit auch für alle Makros, die danach ausgeführt werden – unabhängig davo... [mehr]

Wie prüfe ich in einem Excel-Makro, ob das aktive Blatt Sheets("Projekt") ist?

Um in einem Excel-Makro (VBA) zu prüfen, ob das aktive Blatt das Blatt mit dem Namen "Projekt" ist, kannst du folgenden Code verwenden: ```vba If ActiveSheet.Name = "Projekt"... [mehr]

Warum tritt Fehler 400 auf, wenn ein Excel-Makro per Button gestartet wird, obwohl es schrittweise mit F8 funktioniert?

Der Fehler 400 in Excel-Makros ist ein allgemeiner Laufzeitfehler, der oft auftritt, wenn etwas im Code nicht wie erwartet funktioniert. Dass der Fehler nur beim Starten über den Button und nicht... [mehr]

Wie speichere ich mit einem Excel-Makro die aktuelle Datei unter einem neuen Namen im gleichen Verzeichnis?

Um die aktuelle Excel-Datei per Makro (VBA) unter einem neuen Namen im gleichen Verzeichnis zu speichern, kannst du folgenden VBA-Code verwenden: ```vba Sub SpeichernUnterNeuemNamen() Dim pfad As... [mehr]

Kann ein Excel-Makro in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden oder Zellen bzw. Bereiche löschen?

Ja, ein Excel-Makro (VBA-Code) kann auch in ausgeblendeten Blättern Zeilen oder Spalten ein- und ausblenden sowie Zellen oder Bereiche löschen. Das Makro kann auf alle Arbeitsblätter zu... [mehr]

Funktioniert im Excel-Makro der Befehl: Call Anpassen(nbr+1)?

Ja, das ist im Prinzip möglich, aber es gibt ein paar Dinge zu beachten: 1. **Syntax**: In VBA (Excel-Makros) kannst du eine Prozedur mit Parametern aufrufen, indem du die Argumente in Klammern... [mehr]

Was bedeutet im Excel-Makro CommandBars("Ply")?

Im Excel-Makro bezieht sich `CommandBars("Ply")` auf die sogenannte „Blattregisterkarten-Kontextmenüleiste“. Das ist das Kontextmenü, das erscheint, wenn du mit der rec... [mehr]