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

Wert in Array finden ?

Forumthread: Wert in Array finden ?

Wert in Array finden ?
13.01.2003 16:05:37
zacharias
Hallo Excel-Gemeinde

Ich suche eine Möglichkeit schnell festzustellen
ob ein Wert in einem Array enthalten ist oder nicht.

Die Werte des Arrays sind aber nicht in Zellen eines Sheets enthalten sondern nur im Array selbst (Speicher).

Ich habe hier einen Tip von Hans welcher mit einer
Worksheetfunction arbeitet.
Kann ich das auch anwenden ohne ein Range auf einen Zellbereich
durchzuführen oder gibt es andere Möglichkeiten (ohne Schleifen);
so etwa [if "test1" is in arr] ?

Ich hab probiert Hans Tip durch (*) zu ändern, das klappt aber nicht:
(*)
dim arr as variant
arr = Array("test1", "test2", "test3", "test4")


Sub Durchsuchen()
Dim arr As Variant
Dim iRow As Integer
arr = Range("A1:A16") ' ersetzen durch (*) ???
iRow = Application.Match("Irgendwas", arr, 0)
If Err > 0 Then
MsgBox "Nicht gefunden"
Else
MsgBox "gefunden"
End If
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Wert in Array finden ?
13.01.2003 16:12:32
Hans W. Herber
Hallo Zacharias,

ein Teil der Excel-Fuktionen lassen sich auch auf Arrays anwenden, das gilt auch für VERGLEICH:

hans

Re: Wert in Array finden ?
13.01.2003 16:14:52
Kai
Hallo,
ich arbeite in VB mit der split und join Funktion.
die join-Funktion gibt den Array mit einem Trennzeichen
in einen String aus. Jetzt könnte man mit Instr nach dem gesuchten Begriff fahnden. Danach schreibt man mit split den
String in den Array zurück.

Kai

Anzeige
Re: Wert in Array finden ?
14.01.2003 10:27:29
zacharias
Hallo Kai Hallo Hans

Danke für Eure prompte Hilfe !
Ich denke damit komme ich weiter.

Hans: Dein Forum und Deine hilfreichen Grundlagen-Dateien
sind absolut super. Beides wird von mir oft genutzt und
fleißig weiterempfohlen.

Gruß
Zacharias


;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Wert in Array finden: So geht's in Excel VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu prüfen, ob ein Wert in einem Array vorhanden ist, kannst du folgende Schritte ausführen:

  1. Deklariere das Array: Erstelle ein Variant-Array, das die Werte enthält, die du durchsuchen möchtest.

    Dim arr As Variant
    arr = Array("test1", "test2", "test3", "test4")
  2. Verwende die Application.Match-Funktion: Diese Funktion hilft dir, den gesuchten Wert zu finden.

    Dim iRow As Variant
    iRow = Application.Match("test1", arr, 0)
  3. Fehlerbehandlung: Überprüfe, ob ein Fehler aufgetreten ist, um festzustellen, ob der Wert im Array gefunden wurde.

    If IsError(iRow) Then
        MsgBox "Kein Array-Wert gefunden"
    Else
        MsgBox "Gefunden an Position: " & iRow
    End If
  4. Führe das Skript aus: Starte das Sub, um die Funktionalität zu testen.


Häufige Fehler und Lösungen

  • Fehler beim Zugriff auf das Array: Wenn du versuchst, auf ein Element des Arrays zuzugreifen, das nicht existiert, wird ein Laufzeitfehler angezeigt. Stelle sicher, dass der gesuchte Wert tatsächlich im Array enthalten ist.

  • Application.Match gibt einen Fehler zurück: Achte darauf, dass du die richtige Syntax verwendest. Die Funktion sucht nur nach Werten, die genau mit dem gesuchten übereinstimmen.


Alternative Methoden

Eine alternative Methode, um in einem Array nach einem Wert zu suchen, besteht darin, die InStr- und Split-Funktionen zu verwenden. Hierbei wird das Array in einen String umgewandelt, und dann wird mit InStr nach dem Wert gesucht.

Dim strArray As String
strArray = Join(arr, ",") ' Array in String umwandeln
If InStr(strArray, "test1") > 0 Then
    MsgBox "Wert gefunden"
Else
    MsgBox "Kein Array-Wert gefunden"
End If

Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie du ein Array verwenden kannst, um mehrere Werte zu prüfen:

Sub WertInArraySuchen()
    Dim arr As Variant
    arr = Array("test1", "test2", "test3", "test4")

    Dim suchWert As String
    suchWert = "test3"

    If Not IsError(Application.Match(suchWert, arr, 0)) Then
        MsgBox suchWert & " gefunden!"
    Else
        MsgBox "Kein Array-Wert gefunden"
    End If
End Sub

Dieses Beispiel zeigt, wie einfach es ist, in einem Array nach einem bestimmten Wert zu suchen.


Tipps für Profis

  • Verwende Dictionary: Wenn du häufige Suchen durchführen musst, kann ein Dictionary schneller sein als ein Array, da es eine direkte Schlüsselwertsuche ermöglicht.

  • Fehlervermeidung: Überprüfe vor der Suche, ob das Array leer ist, um unerwartete Fehler zu vermeiden.

  • Optimierung: Wenn du mit großen Arrays arbeitest, erwäge, die Suche zu optimieren, indem du die Werte sortierst und eine binäre Suche verwendest.


FAQ: Häufige Fragen

1. Wie prüfe ich, ob ein Wert in einem Array vorhanden ist?
Du kannst die Application.Match-Funktion verwenden, um zu überprüfen, ob ein Wert im Array vorhanden ist.

2. Was mache ich, wenn Application.Match einen Fehler zurückgibt?
Verwende IsError, um festzustellen, ob kein Wert gefunden wurde, und handle entsprechend.

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