Textbox-Inhalt in Excel-Tabellen suchen
Schritt-für-Schritt-Anleitung
Um den Inhalt einer Textbox in einer Excel-Tabelle zu suchen und die Werte in andere Zellen einzufügen, kannst Du folgendes VBA-Skript verwenden. Dieses Beispiel geht davon aus, dass Du ein UserForm mit mehreren Textboxen hast.
- Öffne den Visual Basic for Applications (VBA) Editor mit
ALT + F11
.
- Füge ein UserForm hinzu und platziere TextBox1 und TextBox2 bis TextBox14.
- Füge einen CommandButton hinzu, um den Suchvorgang zu starten.
- Verwende den folgenden VBA-Code für den CommandButton:
Private Sub CommandButton1_Click()
Dim vntRet As Variant, lngIndex As Long
If Len(TextBox1) Then
With Sheets("Tabelle1")
vntRet = Application.Match(TextBox1, .Columns(1), 0)
If IsNumeric(vntRet) Then
For lngIndex = 2 To 14
If Len(Me.Controls("TextBox" & CStr(lngIndex))) Then
If IsNumeric(Me.Controls("TextBox" & CStr(lngIndex))) Then
.Cells(vntRet, lngIndex) = Clng(Me.Controls("TextBox" & CStr(lngIndex)))
Else
.Cells(vntRet, lngIndex) = Me.Controls("TextBox" & CStr(lngIndex))
End If
End If
Next
End If
End With
End If
End Sub
- Schließe den VBA-Editor und teste das UserForm.
Häufige Fehler und Lösungen
-
Fehler: "Typen unverträglich"
Lösung: Stelle sicher, dass die Werte in den Textboxen gültig sind. Überprüfe, ob Du versuchst, einen nicht-numerischen Wert in eine numerische Zelle einzufügen.
-
Fehler: "Wert nicht gefunden"
Lösung: Achte darauf, dass der Wert in TextBox1 exakt mit einem Wert in Spalte A von Tabelle1 übereinstimmt.
-
Fehler: "Index außerhalb des Bereichs"
Lösung: Überprüfe, ob die Anzahl der TextBoxen korrekt ist und dass Du nicht versuchst, auf eine TextBox zuzugreifen, die nicht existiert.
Alternative Methoden
Eine alternative Methode ist die Verwendung von Excel-Formeln, um die Daten zu suchen und zu verknüpfen. Du kannst die SVERWEIS
-Funktion verwenden, um die Werte zu finden und die entsprechenden Daten in den Zellen anzuzeigen.
Beispiel für die SVERWEIS
-Formel in der Zelle B35:
=SVERWEIS(A35;Tabelle1!A:N;2;FALSCH)
Diese Formel sucht nach dem Wert aus A35 in Spalte A der Tabelle1 und gibt den entsprechenden Wert aus der 2. Spalte zurück.
Praktische Beispiele
Angenommen, Du hast folgende Werte in Spalte A von Tabelle1:
A |
B |
C |
1 |
100 |
200 |
2 |
150 |
250 |
3 |
200 |
300 |
Wenn Du in TextBox1 den Wert 2
eingibst und auf den CommandButton klickst, werden die Werte 150
und 250
in die Zellen B35 und C35 eingefügt.
Tipps für Profis
- Nutze die
Option Explicit
-Anweisung am Anfang Deines VBA-Codes, um sicherzustellen, dass Du alle Variablen deklarierst. Dies hilft, Fehler zu vermeiden.
- Verwende
Debug.Print
oder MsgBox
, um Zwischenwerte während der Ausführung anzuzeigen und so den Code zu debuggen.
- Experimentiere mit der
UserForm
-Gestaltung, um die Benutzeroberfläche ansprechender zu gestalten.
FAQ: Häufige Fragen
1. Kann ich dieses Skript in jeder Excel-Version verwenden?
Ja, das Skript sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.
2. Was passiert, wenn TextBox1 leer ist?
Wenn TextBox1 leer ist, wird der Code nicht ausgeführt, und es findet keine Suche statt.
3. Wie kann ich die Anzahl der Textboxen erhöhen oder verringern?
Ändere einfach die Schleife im VBA-Code von For lngIndex = 2 To 14
auf den gewünschten Bereich. Achte darauf, dass Du auch die entsprechenden Textboxen im UserForm anpasst.