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

Forumthread: Durchsuchen von Arrays

Durchsuchen von Arrays
04.04.2018 13:59:39
Arrays
Guten Tag,
ich wollte mal nachfragen, wie man nach einem bestimmten Wert in einem Array sucht?
Zu meinem Beispiel:
Ich habe bereits zwei Arrays angelegt:

Sub Unterscheidung ()
Dim evZ
evZ = Array("1RA6", "1RP6", "1RQ6", "1RN6", "1SJ6", "1SN6", "1SG6", "1SL6", "1SB6", "1SQ6", " _
1LA4", "1PQ4", "1LH4", "1MA4", "1MG4", "1MS4", "1NA1", "1NB1", "1NC1", "1NE1", "1NF1", "1NG1", " _
1NM1", "1NN1", "1NX1", "1NY1")
Dim evZa
evZa = Array("1FW4", "1LM1", "1LQ1", "1LH1", "1LP1", "1LL1", "1LN1", "1LA8", "1PQ8", "1LL8", "  _
_
1LH8")
>

Nun will ich in den beiden Arrays nach einem Wert in Zeile 1 Spalte A suchen. Kann mir hierbei jemand behilflich sein?
Vielen Dank!
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Durchsuchen von Arrays
04.04.2018 14:27:13
Arrays

For Each Z In evZ
If Z= cells(1,1) Then
'mach was
End If
Next

Anzeige
AW: Durchsuchen von Arrays
04.04.2018 14:29:05
Arrays
Hallo,
so z.B.:
Option Explicit
Sub Unterscheidung()
Dim evZ
evZ = Array("1RA6", "1RP6", "1RQ6", "1RN6", _
"1SJ6", "1SN6", "1SG6", "1SL6", "1SB6", "1SQ6", _
"1LA4", "1PQ4", "1LH4", "1MA4", "1MG4", "1MS4", _
"1NA1", "1NB1", "1NC1", "1NE1", "1NF1", "1NG1", _
"1NM1", "1NN1", "1NX1", "1NY1")
Dim evZa
evZa = Array("1FW4", "1LM1", "1LQ1", "1LH1", _
"1LP1", "1LL1", "1LN1", "1LA8", "1PQ8", _
"1LL8", "1LH8")
Debug.Print ElementExists("1MA4", evZ)
Debug.Print IndexOf("1MA4", evZ)
Debug.Print ElementExists("1LQ1", evZa)
Debug.Print IndexOf("1LQ1", evZa)
'Kombination aus beiden Arrays
Dim tmp As Variant
tmp = Split(Join(evZ, ";") & ";" & Join(evZa, ";"), ";")
Debug.Print ElementExists("1MA4", tmp)
Debug.Print IndexOf("1MA4", tmp)
Debug.Print ElementExists("1LQ1", tmp)
Debug.Print IndexOf("1LQ1", tmp)
End Sub
Private Function ElementExists(ByVal vElem As Variant, _
ByRef Src As Variant) As Boolean
ElementExists = Not VBA.IsError(Application.Match(vElem, Src, 0))
End Function
Private Function IndexOf(ByVal vElem As Variant, _
ByRef Src As Variant) As Long
If Not VBA.IsError(Application.Match(vElem, Src, 0)) Then
IndexOf = Application.Match(vElem, Src, 0)
End If
End Function

Anzeige
Die Zusammenfassung lässt sich auch direkt ...
04.04.2018 15:34:46
Luc:-?
…als (vertikaler) Vektor mit 2 Elementen, die aus den gebildeten (horizontalen) Kovektoren bestehen, bilden, Peter:
tmp = Array(evZ, evZa)
Dabei könnte das auch gleich so gemacht wdn:
evZ = Array(Array(inhalt_evZalt), Array(inhalt_evZa))
Oder noch einfacher; man legt 2 TextKonstanten aus diesen Texten mit Leerzeichen als Trenner an und splittet diese:
Const evZ$ = "…", evZa$ = "…"
tmp = Array(Split(evZ), Split(evZa))

Beim elementweisen Durchlaufen benötigt man dann 2 Schleifen.
Man kann natürlich auch mit nur einer, der äußeren Schleife arbeiten und dann auf jeden Kovektor WorksheetFunction( bzw Application).Match anwenden.
Gruß, Luc :-?
Anzeige
Wieder was gelernt
04.04.2018 16:06:40
Peter(silie)
Hallo,
danke für den Tipp!
Wesentlich übersichtlicher als die Split Join Variante.
AW: Die Zusammenfassung lässt sich auch direkt ...
04.04.2018 16:14:46
snb

Sub M_snb()
msgbox instr(" 1RA6 1RP6 1RQ6 1RN6 1SJ6 1SN6 1SG6 1SL6 1PQ4 1LH4 1MA4 ", " 1SG6 "
End Sub

AW: Durchsuchen von Arrays
04.04.2018 15:03:30
Arrays
Hallo nochmal
ohne Schleife durch Textvergleich...
Wichtig:
- kein Array, sondern als Text
- Erstes Zeichen muss Leerzeichen sein
- Letztes Zeichen muss Komma sein
    Dim evZ, SpO As String
    evZ = " 1RA6, 1RP6, 1RQ6, 1RN6, 1SJ6, 1SN6, 1SG6, 1SL6, 1SB6, 1SQ6, 1LA4, 1PQ4, 1LH4, 1MA4, 1MG4, 1MS4, 1NA1, 1NB1, 1NC1, 1NE1, 1NF1, 1NG1, 1NM1, 1NN1, 1NX1, 1NY1,"
    
    SpO = " " & Cells(1, 1) & ","
    
    If InStr(evZ, SpO) > 0 Then
         MsgBox "mach was"
    Else
         MsgBox "nix"
    End If

Es wird die Stelle des Suchwortes im Text ermittelt
- Ist Diese &gt 0, wurde was gefunden
LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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