Jörg Lorenz: Excel/VBA: Find ja, FindNext nein

Beitrag lesen

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