Hi,
haha, sehr schön, als ich das als Sub stehen hatte hat sich mein Excel ständig beschwert: vba_find "That name is not valid"
was denn - hatte die Sub den gleichen Namen wie die Function? ;-)
Nee, als eigenständige Sub funktioniert es hier, wie auch als Function, die durch eine Sub aufgerufen wird:
Sub vba_find(was As String)
Dim cellRange As Range
Dim resultCell As Object
Application.Volatile
With Worksheets("Tabelle1").Range("A1:A20")
Set resultCell = .Find(was, lookat:=xlPart)
MsgBox resultCell.Row & " " & resultCell.Column
While Not resultCell Is Nothing
MsgBox resultCell.Row & " " & resultCell.Column
Set resultCell = .FindNext(resultCell)
Wend
End With
End Sub
Sub test()
vba_find Worksheets("Tabelle1").Range("B1")
End Sub
Das ganze ist aus einem Kontext gerissen, der mir noch nichtmal so ganz bekannt ist, hab nur einem Kollegen geholfen. Sein Excel-Sheet ist viel größer, er sucht so eine Art "VLookup and Concat values in neighboring cell into another cell" :-)
Hm, das ist ja wirklich etwas wenig. So wie es dasteht wäre die Frage: Warum nimmt er dann nicht gleich den SVERWEIS? Andererseits können da ja nicht mehrere Werte zurückgegeben werden (also aus verschiedenen gefundenen Zellen), aber das würde mit Find ja auch nicht gehen. Man könnte zwar einen Array basteln, aber den müsste man dann auch in einen einzigen Rückgabewert umwandeln …
Viele Grüße
Jörg