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.