Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array global deklarieren

Forumthread: Array global deklarieren

Array global deklarieren
17.02.2015 17:48:34
Peter
Wie kann ich das folgende Array außerhalb einer Prozedur global deklarieren?
Dim Month_English_Array As Variant
Month_English_Array = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Danke im Voraus.
Grüße
Peter

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array global deklarieren
17.02.2015 17:53:38
Daniel
Hi
ausserhab der Prozedur:
Public Month_English_Array As Variant
die Wertzuweisung muss dann in einem Makro erfolgen, natürlich bevor die Variable das erste mal verwendet wird.
Gruß Daniel

AW: Array global deklarieren
17.02.2015 17:54:57
Oberschlumpf
Hi Peter
schreib im allgem. Modul in die zweite Zeile, direkt unter Option Explicit, diesen Code:
Public Month_English_Array As Variant

Nun kannst du in allen Modulen deiner Variablen die gewünschten Werte zuweisen und kannst sie in allen Modulen abrufen.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Array global deklarieren
17.02.2015 18:00:38
Peter
Hallo Peter,
vesuche es so
Option Explicit
Public Const Month_English_Array As Variant _
= Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Public Sub Mein_Makro()
End Sub

Gruß Peter

AW: mein Beitrag ist ungültig, weil falsch
17.02.2015 18:03:37
Peter
oT

Anzeige
Sicher, würde aber so gehen, Peter:
18.02.2015 04:39:49
Luc:-?
Const txMonthEnglish$ = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
Public Month_English_Array$()

Vor 1.Benutzung dann: Month_English_Array = Split(txMonthEnglish)
Wahrscheinl ist dieses Array aber unnötig, Frage-Peter,
falls es nur um die Erzeugung von Datumswerten in englisch­sprachiger Form oder eine Umwandlung aus dieser geht, denn für Ersteres gibt's LänderCodes (in xlFkt TEXT einsetzbar) und anderenfalls kann man evaluieren (mit vbFkt Evaluate, die Englisch versteht).
Morrn, Luc :-?
Besser informiert mit …
Anzeige
;
Anzeige

Infobox / Tutorial

Array global deklarieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Array in Excel VBA global zu deklarieren, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein allgemeines Modul: Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt, wähle Einfügen und dann Modul.

  3. Deklariere das Array: Füge in das Modul den folgenden Code ein, um das Array global zu deklarieren:

    Public Month_English_Array As Variant
  4. Initialisiere das Array: Setze die Werte des Arrays in einem Sub oder einer Funktion:

    Sub InitializeArray()
       Month_English_Array = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
    End Sub
  5. Verwende das Array in anderen Modulen: Du kannst nun Month_English_Array in jedem Modul deines Projekts verwenden, solange es initialisiert wurde.


Häufige Fehler und Lösungen

  • Fehler: "Variable nicht definiert"

    • Lösung: Stelle sicher, dass du das Array initialisiert hast, bevor du darauf zugreifst.
  • Fehler: "Typkonflikt"

    • Lösung: Überprüfe, ob das Array korrekt deklariert wurde. Wenn du ein Const Array verwenden möchtest, ändere die Deklaration zu:
      Public Const Month_English_Array As Variant = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

Alternative Methoden

Eine alternative Methode zur Deklaration eines Arrays in VBA ist die Verwendung von Split, um eine String-Liste in ein Array zu konvertieren:

Const txMonthEnglish As String = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
Public Month_English_Array() As String

Sub InitializeArray()
    Month_English_Array = Split(txMonthEnglish, " ")
End Sub

Diese Methode ist besonders nützlich, wenn du eine dynamische Liste von Werten benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ein global array in deinen VBA-Projekten verwenden kannst:

  1. Zugriff auf Monatsnamen:

    Sub PrintMonths()
       Dim i As Integer
       For i = LBound(Month_English_Array) To UBound(Month_English_Array)
           Debug.Print Month_English_Array(i)
       Next i
    End Sub
  2. Matrix definieren:

    Public Month_Matrix(1 To 3, 1 To 4) As String
    Sub InitializeMatrix()
       Month_Matrix(1, 1) = "Jan"
       Month_Matrix(1, 2) = "Feb"
       Month_Matrix(1, 3) = "Mar"
       Month_Matrix(1, 4) = "Apr"
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Setze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Nutze Public Const für feste Werte: Wenn die Werte deines Arrays konstant sind, verwende Public Const, um die Leistung zu verbessern und den Code lesbarer zu gestalten.

  • Vermeide globale Variablen, wo möglich: Überlege, ob du stattdessen lokale Variablen oder Parameter in deinen Funktionen verwenden kannst, um den Code modularer und weniger fehleranfällig zu machen.


FAQ: Häufige Fragen

1. Wie kann ich ein Array in VBA initialisieren?
Ein Array kann in einem Sub oder einer Funktion mit Array oder Split initialisiert werden. Beispiel:

Month_English_Array = Array("Jan", "Feb", "Mar", ...)

2. Was ist der Unterschied zwischen Public und Private Variablen?
Public Variablen sind in allen Modulen des Projekts zugänglich, während Private Variablen nur innerhalb des Moduls, in dem sie deklariert wurden, sichtbar sind.

3. Kann ich ein mehrdimensionales Array in VBA verwenden?
Ja, du kannst mehrdimensionale Arrays in VBA definieren, wie im Beispiel zur Matrix oben beschrieben.

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