Clever-Excel-Forum

Normale Version: Vlookup + On Error GO TO
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich habe eine Liste die wie folgt aussieht 

        A                              B
1     113:00
2     IK Sirius FK
3     Malmö FF
4     6,5
5     4,2
6     1,45


In Spalte B sollen nun durch Sverweis die korrekten Vereinsnamen stehen. 
Dazu habe ich folgenden Code 

Code:
for i = 1 to 10
    if IsNumeric(Cells(i, 1)) = True Then
        verein = "xxx"        
   Else
       verein = Cells(i, 1)
   End If
    On Error GoTo Next_step
    Worksheets("Daten").Cells(i, 2) = Application.WorksheetFunction.VLookup(verein, Worksheets("Sverweis").Range("A1:B5000"), 2, False)
Next_step:
       If Cells(i, 2) = " " Then
            Cells(i, 2) = verein
       End If
next i

Bei der ersten Zeile funktioniert die Error Bedingung wunderbar. in der Variablen "verein" steht "xxx" drinnen. Vlookup findet den Wert nicht und er geht in "Next step"
Die beiden nächsten Zellen funktionieren und VLookup bring die korrekten Vereinsnamen. 

Nun kommen wir an die Situation, welche ich nicht verstehe und diesen Eintrag mache. 
In der nächsten Zelle (6,5) erkennt er wieder, dass es eine Numerische Zahl ist, belegt die Variable verien mit "xxx" und dann kommt es zu einem Abbruch.
Was ich nicht verstehe ist, dass er bei der ersten Zelle alles korrekt mach und bei der nächsten Zelle,in der verein "xxx" wird, kommt es zu Abbruch obwohl der sverweis mit der gleich Logik augeführt wird, welche drei Zeilen zuvor funktioniert hat.
Fehlermeldung 
Laufzeitfehler 1004 
Vlookup-Eigenschaft kann des WS Funktion Object kann nicht zugeordnet werden.

Kann mir hierbei jemand helfen ? 

GRuß
Oliver
Hallo Oliver,

warum nicht schon in der ersten Zeile, kann ich nicht beantworten, da ich die Verweistabelle nicht kenne.
Das wäre mein Vorschlag:
Sub bbc()
Dim i As Long
For i = 1 To 10
   With Worksheets("Daten").Cells(i, 1)
       If IsNumeric(.Value) Then
            Cells(i, 2) = "xxx"
       Else
            .Offset(0, 1).Value = Application.WorksheetFunction.VLookup(.Value, Worksheets("Sverweis").Range("A1:B5000"), 2, False)
       End If
   End With
Next i
End Sub
Gruß Uwe