Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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!

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige