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

Forumthread: VBA Vlookup

VBA Vlookup
15.04.2003 09:47:55
Robert
Hallo,

Ich hoffe Ihr könnt mich wieder mal helfen.

Dieser Worksheet Function funktioniert einwandfrei aber braucht zuviel Platz. Ich habe deswegen versucht ein Vlookup in VBA zu schreiben aber ich komme da leider nicht weiter. Ich habe übrigens versucht auf Internet Vlookup Info in VBA zu finden, leider ohne Erfolg


=IF(A9="";"";IF(F3=2;IF(ISNUMBER(VLOOKUP(Employee2!A9;Employee2!$A$9:$A$28;1;FALSE));"Kollision";VLOOKUP(Employee2!A9;Employee2!$A$9:$A$28;1;FALSE));IF(ISERROR(VLOOKUP(Employee2!A9;Employee2!$A$9:$A$28;1;FALSE));"")))

Es wäre einfach schön, wenn ihr mich weiter helfen könnt.


Vielen Dank und Grüsse

Robert


Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA Vlookup
15.04.2003 10:47:03
Nike

Hi,
mal ein Ansatz, da ich nicht die ganze if Funktion nachbauen
möchte ;-)

Sub test2()
Dim wks As Worksheet
Set wks = Worksheets("Employee2")
MsgBox WorksheetFunction.VLookup(Range("A9"), wks.Range("A9:A28"), 1, False)
End Sub

Bye

Nike


Re: VBA Vlookup
15.04.2003 11:15:26
Robert

Hallo,

Danke schon mal für deine Hilfe.

Zusätzlich muss ich dir noch erwähnen, dass der Vlookup in Zelle
C9 das Ergebnis zeigen müsste

Sollte das dann nicht irgendwie wie unten angezeigt gehen?

Sub test2()

Dim wks As Worksheet
Set wks = Worksheets(2)
[E9] = Formula.WorksheetFunction.vlookup(Range("A9"), wks.Range("A9:A28"), 1, False)

End Sub

Gruss

Robert


Anzeige
Re: VBA Vlookup
15.04.2003 11:20:17
Nike

Hi,
diese eckigen Klammern kenn ich gar nicht...

Range("E9").value = Formula.WorksheetFunction.vlookup(Range("A9"), wks.Range("A9:A28"), 1, False)

Muss der Bereich wks.Range("A9:A28")
nicht zwei Spalten umfassen um dann aus der zweiten Spalte das
vergleichsergebnis auszugeben?
also eher
Range("E9").value = Formula.WorksheetFunction.vlookup(Range("A9"), wks.Range("A9:B28"), 2, False)

Aber ich hab`s nich so mit sverweis ;-)

Bye

Nike

Anzeige
Re: VBA Vlookup
15.04.2003 15:26:32
Robert

Hallo Nike,

eckigen Klammern haben in Excel 2000, die gleiche Wirkung wie "range" oder "Cell"

Übrigens ich habe immer noch Probleme mit

Sub test2()

Dim wks As Worksheet
Set wks = Worksheets(2)
Range("E9").value = Formula.WorksheetFunction.vlookup(Range("A9"), wks.Range("A9:A28"), 1, False)("A9:A28"), 1, False)

End Sub

Es heisst halt immer wieder OBject required

Hast du noch irgend welche Ideen oder soll ich halt weiter schauen?

Gruss

Robert

Anzeige
Re: ohne Formula.
15.04.2003 15:53:35
Nike

Hi,
das kommt davon wenn man gepostetes ungelesen übernimmt ;-)
Range("E9").Value = ActiveSheet.WorksheetFunction.VLookup(Range("A9"), wks.Range("A9:B28"), 2, False)

Ich weiß nicht wie das Formula. vor WorksheetFunction
hingekommen ist...
Sorry.

Bye

Nike

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Vlookup mit VBA in Excel verwenden


Schritt-für-Schritt-Anleitung

Um die Vlookup-Funktion in VBA zu verwenden, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „Modul“.
  3. Schreibe den VBA-Code:

    • Verwende den folgenden Beispielcode, um die Vlookup-Funktion zu implementieren:
    Sub BeispielVlookup()
       Dim wks As Worksheet
       Set wks = Worksheets("Employee2")
       ' Vlookup in Zelle E9
       Range("E9").Value = Application.WorksheetFunction.VLookup(Range("A9"), wks.Range("A9:B28"), 2, False)
    End Sub
  4. Führe das Makro aus:

    • Klicke auf „Run“ oder drücke F5, um das Makro zu starten.

Häufige Fehler und Lösungen

  • Fehler: "Object required"
    Dies tritt häufig auf, wenn du versuchst, auf ein nicht definiertes Objekt zuzugreifen. Stelle sicher, dass das Arbeitsblatt korrekt benannt ist und der Range-Referenz korrekt angegeben wurde.

  • Fehler: "Value not available"
    Dieser Fehler zeigt an, dass der gesuchte Wert nicht im angegebenen Bereich gefunden wurde. Überprüfe die Eingabewerte und den Bereich für Vlookup.


Alternative Methoden

Falls du keine VBA-Lösung nutzen möchtest, kannst du auch die Standard-Excel-Funktion verwenden:

  1. Verwende die Formel direkt in einer Zelle:

    =VLOOKUP(A9, Employee2!A9:B28, 2, FALSE)
  2. Nutze die INDEX und MATCH-Funktionen als Alternative:

    =INDEX(Employee2!B9:B28, MATCH(A9, Employee2!A9:A28, 0))

Praktische Beispiele

Hier sind einige Beispiele, wie du Vlookup in VBA nutzen kannst:

  1. Einfaches Vlookup Beispiel:

    Sub EinfachesVlookup()
       Dim result As Variant
       result = Application.WorksheetFunction.VLookup("Suchwert", Worksheets("Tabelle1").Range("A1:B10"), 2, False)
       MsgBox result
    End Sub
  2. Vlookup mit Fehlerbehandlung:

    Sub VlookupMitFehlerbehandlung()
       On Error Resume Next
       Dim result As Variant
       result = Application.WorksheetFunction.VLookup("Suchwert", Worksheets("Tabelle1").Range("A1:B10"), 2, False)
       If IsError(result) Then
           MsgBox "Wert nicht gefunden!"
       Else
           MsgBox "Ergebnis: " & result
       End If
       On Error GoTo 0
    End Sub

Tipps für Profis

  • Nutze die Application.VLookup Methode für eine schnellere Ausführung.
  • Vermeide die Verwendung von Formula. vor WorksheetFunction, um den Code sauberer zu halten.
  • Arbeite mit Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Vlookup in Excel und in VBA?
In Excel verwendest du die Formel direkt in einer Zelle, während du in VBA die WorksheetFunction-Methode nutzt, um denselben Effekt zu erzielen.

2. Kann ich Vlookup auch über mehrere Arbeitsblätter nutzen?
Ja, du kannst den Bereich für Vlookup so anpassen, dass er auf Bereiche in anderen Arbeitsblättern verweist, indem du den Arbeitsblattnamen in der Range-Referenz angibst.

3. Wie kann ich die Vlookup-Funktion anpassen, um mehrere Kriterien zu berücksichtigen?
Für mehrere Kriterien kannst du die INDEX und MATCH-Funktionen verwenden, um flexibler zu sein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige