Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable in ein anderes Makro übernehmen

Forumthread: Variable in ein anderes Makro übernehmen

Variable in ein anderes Makro übernehmen
13.01.2021 15:02:43
Sarah
Guten Mittag.
Ich stelle mir die Frage ob man eine Variable in einer Call Methode übernehmen kann.
Also:
"...
Datum = ThisWorkbook.Worksheets("X").Cells(lngRow, 7).Value
Call Export
... "
Kann ich jetzt irgendwie in dem "Export" Makro, dass ich durch die Call Methode aufrufe, auf die Variable Datum zugreifen bzw. die Variable benutzen?
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable in ein anderes Makro übernehmen
13.01.2021 15:19:44
Daniel
HI
gibt zwei wege:
a) du machst ähnlich wie bei einer Funktion eine Parameterübergabe, die übergebene Variable kann dann direkt verwendet werden:
Call Export(Datum)
Sub Export(Datum)

b) du deklarierst Variablen, die in mehreren Makros verwendet werden sollen, als Projektweit gültig.
dazu erfolgt die Deklaration der Variable nicht mehr im Makro selbst, sondern in einem allgemeinen Modul oberhalb der Makros dem Vorsatz: Public
Option Explicit
Public Datum as Variant
Sub Makro1()
End Sub

dann kann die Variable von jedem Makro im Projekt verwendet werden und die Variablenwerte bleiben nach Makroende erhalten.
Gruß Daniel
Anzeige
AW: Variable in ein anderes Makro übernehmen
13.01.2021 15:22:35
worti
Hallo Sarah,
ja du kannst Variablen an Unter-Prozeduren übergeben:
Sub Haupt()
Dim Datum As Date
Datum = Date
Call Unter(Datum)
End Sub
Sub Unter(myDate As Date)
MsgBox myDate
End Sub

Oder du definierst die ein Public-Variable die im ganzen VBA-Projekt sichtbar ist.
Gruß Worti
Anzeige
AW: Variable in ein anderes Makro übernehmen
13.01.2021 17:33:00
Sarah
vielen dank euch beiden!
Hat wundervoll geklappt! :)
;
Anzeige

Infobox / Tutorial

Variable in ein anderes Makro übernehmen


Schritt-für-Schritt-Anleitung

Um eine Variable in ein anderes Makro zu übernehmen, stehen dir hauptsächlich zwei Methoden zur Verfügung:

  1. Parameterübergabe: Du kannst die Variable beim Aufruf des Makros als Parameter übergeben. Zum Beispiel:

    Call Export(Datum)
    Sub Export(Datum)
       ' Hier kannst du die Variable Datum verwenden
    End Sub
  2. Öffentliche Variablen: Du kannst die Variable in einem allgemeinen Modul deklarieren, um sie im gesamten VBA-Projekt verfügbar zu machen:

    Option Explicit
    Public Datum As Variant
    
    Sub Makro1()
       ' Verwendung der öffentlichen Variable
    End Sub

Diese Methoden ermöglichen es dir, effektiv Variablen zwischen verschiedenen Makros zu verwenden.


Häufige Fehler und Lösungen

  • Fehler: "Variable nicht definiert"

    • Lösung: Stelle sicher, dass die Variable korrekt deklariert wurde. Wenn du eine öffentliche Variable verwendest, überprüfe, ob sie im richtigen Modul deklariert ist.
  • Fehler: "Typkonflikt"

    • Lösung: Achte darauf, dass der Datentyp der übergebenen Variable mit dem Datentyp des Parameters im aufgerufenen Makro übereinstimmt.

Alternative Methoden

Eine weitere Möglichkeit, Variablen zwischen Makros zu verwenden, ist die Nutzung von globalen Arrays oder Collection-Objekten. Diese Methoden sind besonders nützlich, wenn du mehrere Werte speichern und verwalten möchtest.

Hier ein Beispiel mit einem Array:

Public Daten(1 To 10) As Variant

Sub SetzeWerte()
    Daten(1) = "Wert1"
End Sub

Sub VerwendeWerte()
    MsgBox Daten(1)
End Sub

Praktische Beispiele

Hier sind einige praxisnahe Beispiele, wie du Variablen in Makros übergeben kannst:

  1. Einfaches Makro mit Parameterübergabe:

    Sub Haupt()
       Dim Datum As Date
       Datum = Date
       Call Unter(Datum)
    End Sub
    
    Sub Unter(myDate As Date)
       MsgBox myDate
    End Sub
  2. Öffentliche Variable in mehreren Makros:

    Public Datum As Date
    
    Sub SetzeDatum()
       Datum = Date
    End Sub
    
    Sub ZeigeDatum()
       MsgBox Datum
    End Sub

Tipps für Profis

  • Nutze die Option Explicit Anweisung am Anfang jedes Moduls. Dies zwingt dich, alle Variablen zu deklarieren und hilft, Tippfehler zu vermeiden.
  • Halte die Verwendung von öffentlichen Variablen auf ein Minimum, um unerwartete Nebeneffekte in deinem VBA-Projekt zu vermeiden.
  • Dokumentiere deine Makros gut, insbesondere wenn du Parameterübergaben verwendest. Das hilft dir und anderen, den Code leichter zu verstehen.

FAQ: Häufige Fragen

1. Wie kann ich eine Variable in einem anderen Modul verwenden? Du kannst die Variable als öffentliche Variable deklarieren, indem du Public vor der Deklaration verwendest.

2. Was passiert, wenn ich eine Variable nicht deklariere? Ohne die Deklaration kann VBA nicht wissen, wie die Variable behandelt werden soll, was zu Laufzeitfehlern führen kann. Verwende immer Option Explicit, um solche Probleme zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige