Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Find


Betrifft: Find von: Wegmann
Geschrieben am: 26.01.2018 09:19:41

Schönen guten Morgen,

heute bringt mich Excel VBA zum Verzweifeln, vielleicht weiß jemand warum das so ist:
In A1 schreibe ich ein A. Dieses ziehe ich bis A3 runter.
Im VBA Code steht folgendes:
Set f = Range("A1:A3").Find("A", LookIn:=xlValues, LookAt:=xlWhole)
MsgBox f.Row

Ich würde den Rückgabe Wert 1 erwarten, er bringt aber 2 !!!???
Lösche ich A2 und A3, sodass nur in A1 A steht liefert er als Rückgabewert 1????!!!!

Warum fängt der Find nicht bei dem ersten Wert des bereichs an ?

Gruß

Andrew

  

Betrifft: Searchdirection:=2 von: Matthias L
Geschrieben am: 26.01.2018 10:01:07

Hallo

Rückwärts suchen.

Searchdirection:=2
oder: xlPrevious

Gruß Matthias


  

Betrifft: sorry, falsch verstanden ... siehe Sepp owT von: Matthias L
Geschrieben am: 26.01.2018 10:18:20




  

Betrifft: AW: Find von: Sepp
Geschrieben am: 26.01.2018 10:02:35

Hallo Andrew,

ist ganz normal, da XL von A1 aus die nächste Zelle sucht. Deshalb soll/muss man bei .Find immer alle relevanten Parameter angeben.

Set f = Range("A1:A3").Find("A", LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext, After:=Range("A3"))
MsgBox f.Row


Gruß Sepp



  

Betrifft: AW: Find von: Wegmann
Geschrieben am: 26.01.2018 10:30:10

Hallo Sepp,

zur gleichen Lösung bin ich jetzt auch gekommen.
Ist aber finde ich nicht gut gelöst. Ich gebe einen Bereich an sage in Prinzip durchsuche den Bereich (ohne den Befehl after), dann sollte man als logisch denkender Mensch davon ausgehen, dass mit der ersten Adresse im Bereich gestartet wird....
Ist halt so, nicht alles ist logisch....
Danke Sepp


  

Betrifft: AW: Find von: Sepp
Geschrieben am: 26.01.2018 10:35:45

Hallo Andrew,

doch, ist logisch und genau deshalb muss man bei .Find immer alle Parameter angeben, weil sonst die Parameter der vorherigen Suche verwendet werden.

Gruß Sepp