sverweis in vba: So funktioniert's
Schritt-für-Schritt-Anleitung
- Öffne die VBA-Entwicklungsumgebung in Excel, indem Du
ALT + F11 drückst.
- Füge eine Userform hinzu, indem Du im Menü
Einfügen die Option UserForm wählst.
- Füge eine TextBox und ein Label zu Deiner Userform hinzu. Benenne die TextBox als
TextBox1 und das Label als Label1.
- Klicke mit der rechten Maustaste auf die Userform und wähle
Code anzeigen.
-
Füge den folgenden Code in das Codefenster ein:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Label1.Caption = Application.WorksheetFunction.VLookup(Me.TextBox1.Value * 1, _
Sheets("Tabelle1").Range("A1:B500"), 2, False)
End Sub
- Schließe die VBA-Entwicklungsumgebung und teste Deine Userform.
Häufige Fehler und Lösungen
-
Fehler: „#N/A“ wird angezeigt
Dieser Fehler tritt auf, wenn der gesuchte Wert nicht in der ersten Spalte des angegebenen Bereichs vorhanden ist. Stelle sicher, dass die Eingabe in TextBox1 mit einem Wert in Tabelle1 übereinstimmt.
-
Fehler: „Typen unverträglich“
Dies passiert, wenn die Eingabe in TextBox1 kein Zahlenwert ist, aber Du versuchst, diesen als Zahl zu verarbeiten. Verwende den Code wie oben beschrieben (mit * 1), um sicherzustellen, dass der Wert als Zahl interpretiert wird.
Alternative Methoden
Falls Du den SVERWEIS in VBA nicht verwenden möchtest, gibt es alternative Ansätze:
- Verwende den
Match-Befehl: Du kannst den gesuchten Wert mit WorksheetFunction.Match finden und dann den entsprechenden Wert abrufen.
- Direkte Zellreferenzierung: Anstatt VBA zu verwenden, kannst Du die Formel
=SVERWEIS(A1;Tabelle1!A1:B500;2;FALSCH) direkt in eine Zelle eingeben.
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du SVERWEIS in VBA effektiv nutzen kannst:
Beispiel 1: Einfacher SVERWEIS
Label1.Caption = Application.WorksheetFunction.VLookup(TextBox1.Value, Sheets("Tabelle1").Range("A1:B500"), 2, False)
Beispiel 2: Mit Fehlerbehandlung
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Label1.Caption = Application.WorksheetFunction.VLookup(Me.TextBox1.Value * 1, Sheets("Tabelle1").Range("A1:B500"), 2, False)
If Err.Number <> 0 Then
Label1.Caption = "Wert nicht gefunden"
Err.Clear
End If
End Sub
Tipps für Profis
- Verwende
Option Explicit: Dies hilft, Fehler zu vermeiden, indem es sicherstellt, dass alle Variablen deklariert sind.
- Vermeide das
.Select: In VBA ist es besser, .Select zu vermeiden, um die Ausführungsgeschwindigkeit zu erhöhen und den Code übersichtlicher zu gestalten.
- Teste regelmäßig: Überprüfe Deinen Code häufig auf Fehler, besonders wenn Du mit Benutzerformularen arbeitest.
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen SVERWEIS und VLOOKUP?
Es gibt keinen Unterschied; SVERWEIS ist die deutsche Bezeichnung für die Funktion VLOOKUP in Englisch.
2. Funktioniert SVERWEIS auch mit nicht sortierten Daten?
Ja, der SVERWEIS kann auch mit nicht sortierten Daten arbeiten, solange Du den letzten Parameter auf FALSCH setzt.
3. Wie kann ich mehrere Werte gleichzeitig abrufen?
Du kannst SVERWEIS nicht direkt für mehrere Werte verwenden. Stattdessen musst Du separate Aufrufe für jeden Wert durchführen oder eine benutzerdefinierte Funktion schreiben.