Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WorksheetFunction.Vlookup

Forumthread: WorksheetFunction.Vlookup

WorksheetFunction.Vlookup
25.02.2008 10:44:40
Peter
Hallo,
folgender Code

Private Sub kto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ktobez = Application.WorksheetFunction.VLookup(kto, Workbooks("buchen.xls").Sheets("Stamm"). _
Range("A1:B100"), 2, False)
End Sub


führt zu folgender Fehlermeldung:
"Die VLookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden"
Wer kann mit helfen?
Vielen Dank
Gruß Peter

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WorksheetFunction.Vlookup
25.02.2008 11:06:32
Peter
Hallo Peter,
was ist "Workbooks("buchen.xls").Sheets("Stamm").Range("A1:B100")," ?
Ist das das aktuelle Workbook, oder nicht?
Ist das Workbook geöffnet?
Gruß Peter

AW: WorksheetFunction.Vlookup
25.02.2008 11:14:00
Peter
Hallo Peter,
ja, es handelt sich um das aktuelle Workbook. Auch das Sheet "Stamm" existiert.
Ich denke, daran kann es auch nicht liegen, denn z. B. eine WorksheetFunction.SumIf, die sich auf den
gleichen Bereich bezieht, funktioniert einwandfrei.
Vielleicht noch eine Idee?
Vielen Dank !
Gruß Peter

Anzeige
AW: WorksheetFunction.Vlookup
25.02.2008 11:47:00
Peter
Hallo Peter,
du suchst wahrscheinlich mit kto einen String und keine nummerische Kontonummer.
Versuch es einmal so:

Private Sub kto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ktobez = Application.WorksheetFunction.VLookup(CLng(kto), Worksheets("Stamm"). _
Range("A1:B100"), 2, False)
End Sub


Gruß Peter

Anzeige
AW: WorksheetFunction.Vlookup
25.02.2008 11:51:00
Peter
Hallo Peter,
ktobez = Application.WorksheetFunction.VLookup(Val(kto), Worksheets("Stamm"). _
Range("A1:B100"), 2, False)
funktioniert bei mir ebenfalls.
Gruß Peter

AW: WorksheetFunction.Vlookup
25.02.2008 11:55:37
Peter
Hallo Peter,
ja Du hast recht.
Vielen Dank, jetzt funktionierts!!!
Gruß Peter

Anzeige
AW: WorksheetFunction.Vlookup
25.02.2008 11:27:26
mpb
Hallo Peter,
der in der Variable kto gespeicherte Wert wird in der ersten Spalte der Matrix wohl nicht gefunden, kannst Du das mal überprüfen (auch die Formate, Text vs. Zahl).
Gruß
Martin

AW: WorksheetFunction.Vlookup
25.02.2008 11:53:42
Peter
Hallo Martin,
vielen Dank, das wars.
Ich habe den Code geändert in

Private Sub kto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ktobez = Application.WorksheetFunction.VLookup(kto * 1, Workbooks("buchen.xls").Sheets(" _
Stamm").Range("A1:B100"), 2, False)
End Sub


und schon funktionierts!!!!
Nochmals vielen Dank!!!
Gruß Peter

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Verwendung der WorksheetFunction.Vlookup in Excel VBA


Schritt-für-Schritt-Anleitung

Um die WorksheetFunction.VLookup in Excel VBA korrekt zu verwenden, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Schreibe den Code: Verwende folgenden Beispielcode, um die Vlookup-Funktion zu implementieren:

    Private Sub kto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        ktobez = Application.WorksheetFunction.VLookup(kto, Worksheets("Stamm").Range("A1:B100"), 2, False)
    End Sub
  4. Teste den Code: Stelle sicher, dass das Arbeitsblatt "Stamm" existiert und die Daten im angegebenen Bereich korrekt formatiert sind.


Häufige Fehler und Lösungen

Ein häufiger Fehler, den Nutzer erleben, ist die Meldung: "Die VLookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden". Hier sind einige Lösungen:

  • Überprüfe den Datentyp: Stelle sicher, dass der Suchwert (z.B. kto) den richtigen Datentyp hat. Wenn kto ein String ist, konvertiere ihn in einen numerischen Wert:

    ktobez = Application.WorksheetFunction.VLookup(CLng(kto), Worksheets("Stamm").Range("A1:B100"), 2, False)
  • Formate prüfen: Überprüfe, ob die Werte im Suchbereich (erste Spalte) im gleichen Format vorliegen (Text vs. Zahl).

  • Workbook und Sheet prüfen: Stelle sicher, dass das Workbook und das spezifische Sheet geöffnet sind und existieren.


Alternative Methoden

Falls du die WorksheetFunction.VLookup nicht verwenden möchtest, kannst du auch die Application.VLookup-Funktion verwenden:

ktobez = Application.VLookup(kto, Worksheets("Stamm").Range("A1:B100"), 2, False)

Diese Methode funktioniert ähnlich, hat jedoch eine andere Fehlerbehandlung.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von WorksheetFunction.VLookup in VBA:

  1. Ein einfaches Lookup:

    Sub EinfachesLookup()
        Dim wert As Variant
        wert = Application.WorksheetFunction.VLookup("Suchwert", Worksheets("Stamm").Range("A1:B100"), 2, False)
        MsgBox wert
    End Sub
  2. Fehlerbehandlung hinzufügen:

    Sub LookupMitFehlerbehandlung()
        On Error Resume Next
        ktobez = Application.WorksheetFunction.VLookup(kto, Worksheets("Stamm").Range("A1:B100"), 2, False)
        If Err.Number <> 0 Then
            MsgBox "Wert nicht gefunden"
            Err.Clear
        End If
        On Error GoTo 0
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deiner Module Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.

  • Datenvalidierung: Setze vor dem Lookup eine Datenvalidierung ein, um sicherzustellen, dass die Eingabewerte korrekt sind.

  • Leistungsoptimierung: Wenn du häufige VLOOKUP-Anfragen hast, überlege, ob du die Daten in ein Dictionary importieren kannst, um die Geschwindigkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die VLookup-Funktion in VBA verwenden?
Du kannst sie mit Application.WorksheetFunction.VLookup aufrufen, wie im Beispiel gezeigt.

2. Was kann ich tun, wenn ich die Fehlermeldung "Die VLookup-Eigenschaft kann nicht zugeordnet werden" erhalte?
Überprüfe, ob der Suchwert im richtigen Format vorliegt und ob das Arbeitsblatt und die Range korrekt sind. Versuche auch, den Datentyp mit CLng oder Val zu konvertieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige