Microsoft Excel

Herbers Excel/VBA-Archiv

Array Match Suche


Betrifft: Array Match Suche
von: Stefan Kalt
Geschrieben am: 29.11.2018 14:44:32

Hallo Zusammen

Mein Problem ist folgendes:

Ich Teile einen Text in Array's "werte"
Dann suche ich mit Match nach dem Wort "Kurztext".
Dies wirt an Position 18 gefunden.
Nun Mein Problem:
Ich möchte das Wort "Nr." suchen. Aber erst ab Position 18.

Application.Match("Kurztext", werte, 0)-- wird von 0 bis Ubound gesucht

Application.Match("Nr.", werte, 0) -- sollte er von 18 bis Ubound suchen.

Habe keinen Plan.

Hoffe Ihr versteht mich.

  

Betrifft: AW: Array Match Suche
von: Rudi Maintaire
Geschrieben am: 29.11.2018 15:16:07

Hallo,
einfach per Schleife.

for i = lbound(werte) to ubound(werte)
  if werte(i) = "Kurztext" then Exit for
next i
for i = i to ubound(werte)
  if werte(i) = "Nr." then Exit for
next i
msgbox i  

Gruß
Rudi


  

Betrifft: AW: Array Match Suche
von: Daniel
Geschrieben am: 29.11.2018 15:16:17

Hi
dann musst du das selber programmieren und das Array ab dieser Position in einer Schleife durchlaufen:

for i = 18 to Ubound(werte)
    if werte(i) = "Nr" then Exit for
next
if i > Ubound(Werte) then
    Msgbox "nicht gefunden"
Else
    Msgbox "gefunden in Index " & i
End if

beachte, dass du in dieser Schleife mit der Indexnummer arbeitest.
Application.Match gibt dir jedoch die Postionsnummer innerhalb des Arrays.
Position und Index sind nur dann gleich, wenn das Array die Basis 1 hat.
anderenfallst musst du ggf umrechnen

Gruß Daniel