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

Forumthread: Prüfen, ob Array leer

Prüfen, ob Array leer
05.03.2015 16:03:06
Frank
Guten Tag zusammen,
mit Public country(3) as string deklariere ich ein Array mit drei Positionen.
Nach dem Starten eines Makros (Details sind hier unerheblich) sind die drei Positionen entweder gefüllt, teilweise gefüllt oder nach wie vor alle leer.
Wie kann ich überprüfen ob alle drei Positionen des Arrays leer sind?
Vielen Dank,
Frank

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob Array leer
05.03.2015 16:49:46
EtoPHG
Hallo Frank,
If Join(country, "-") = "---" Then MsgBox "Leer!!"
Gruess Hansueli

AW: Prüfen, ob Array leer
06.03.2015 07:23:16
Frank
vielen dank, das funktioniert.
aber noch zwei fragen dazu: join verbindet alle drei elemente, korrekt?
warum wird eine leere position denn mit einem "-" ausgedrückt und nicht mit einem "".

Anzeige
AW: Prüfen, ob Array leer
06.03.2015 07:39:06
daniel
Hi
Das "-" wird hier als Trennzeichen zwischen den Teiltexten verwendet.
Besser wäre aber, kein Trennzeichen zu verwenden:

if join(country, "") = "" Then
Das hätte den Vorteil, dass es unabhängig von der Anzahl der Element im array ist.
Gruß Daniel

Anzeige
AW: Prüfen, ob Array leer
06.03.2015 08:10:29
Frank
dankeschön!

AW: Prüfen, ob Array leer
05.03.2015 17:00:00
Michael
Hallo Frank,
z.B. so:

wert = ""
For i = 1 To 3
wert = wert & country(i)
Next i
MsgBox wert = ""
Du addierst alle Werte auf einen leeren String und überprüfst, ob er hinterher immer noch leer ist.
Alternative wäre, jedes einzelne country(i)="" zu vergleichen.
Falls Du die Basis nicht explizit mit 1 angibst, hat das Array "3" übrigens 4 Positionen (0,1,2,3).
Schöne Grüße,
Michael

Anzeige
AW: Prüfen, ob Array leer
06.03.2015 07:23:41
Frank
vielen dank! das funktioniert ebenfalls.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob ein Array leer ist


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein Array in Excel VBA leer ist, kannst Du verschiedene Methoden verwenden. Hier sind die Schritte, um dies zu tun:

  1. Array deklarieren: Zuerst musst Du ein Array deklarieren. Zum Beispiel:

    Public country(3) As String
  2. Prüfen, ob das Array leer ist: Verwende die Join-Funktion, um die Werte des Arrays zu einer Zeichenkette zu verbinden und prüfe, ob diese leer ist:

    If Join(country, "") = "" Then MsgBox "Das Array ist leer!"
  3. Alternative Überprüfung: Du kannst auch eine Schleife verwenden, um jedes Element des Arrays zu überprüfen:

    Dim wert As String
    wert = ""
    For i = 1 To 3
       wert = wert & country(i)
    Next i
    If wert = "" Then MsgBox "Das Array ist leer!"

Häufige Fehler und Lösungen

  • Fehler: Die Überprüfung ergibt immer "nicht leer".

    • Lösung: Stelle sicher, dass Du beim Deklarieren des Arrays die richtige Basis verwendest (Standardmäßig 0 oder 1, je nach Verwendung).
  • Fehler: Das Join-Trennzeichen führt zu falschen Ergebnissen.

    • Lösung: Verwende Join(country, ""), um sicherzustellen, dass kein Trennzeichen zwischen den Elementen verwendet wird.

Alternative Methoden

Wenn Du die Methode der Schleife oder der Join-Funktion nicht nutzen möchtest, gibt es noch andere Möglichkeiten:

  1. Direkte Überprüfung einzelner Elemente:

    If country(1) = "" And country(2) = "" And country(3) = "" Then
       MsgBox "Das Array ist leer!"
    End If
  2. VBA-Funktion für leere Arrays: Du kannst eine Funktion erstellen, die prüft, ob ein Array leer ist:

    Function IsArrayEmpty(arr As Variant) As Boolean
       If IsEmpty(arr) Then
           IsArrayEmpty = True
       Else
           IsArrayEmpty = (UBound(arr) < LBound(arr))
       End If
    End Function

Praktische Beispiele

Hier sind einige praktische Beispiele, um zu verstehen, wie Du die Methoden zur Überprüfung eines leeren Arrays anwenden kannst:

  1. Beispiel 1: Nutzung von Join:

    Public country(3) As String
    If Join(country, "") = "" Then
       MsgBox "Das Array ist leer!"
    End If
  2. Beispiel 2: Verwendung einer Schleife:

    Public country(3) As String
    Dim wert As String
    wert = ""
    For i = 1 To 3
       wert = wert & country(i)
    Next i
    If wert = "" Then MsgBox "Das Array ist leer!"

Tipps für Profis

  • Verwende Option Explicit: Immer Option Explicit verwenden, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Vermeide magische Zahlen: Statt die Zahl 3 direkt im Code zu verwenden, definiere eine Konstante, um die Flexibilität zu erhöhen:

    Const ARRAY_SIZE As Integer = 3
    Public country(ARRAY_SIZE) As String
  • Prüfen, ob ein Wert im Array vorhanden ist: Wenn Du zusätzlich prüfen möchtest, ob ein bestimmter Wert im Array vorhanden ist, kannst Du eine Funktion wie diese verwenden:

    Function IsValueInArray(val As String, arr As Variant) As Boolean
       Dim i As Integer
       For i = LBound(arr) To UBound(arr)
           If arr(i) = val Then
               IsValueInArray = True
               Exit Function
           End If
       Next i
       IsValueInArray = False
    End Function

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Array leer ist?
Du kannst die Join-Funktion verwenden oder jeden Wert im Array einzeln überprüfen.

2. Was passiert, wenn das Array nicht deklariert ist?
Falls

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