Variable in einer Spalte suchen mit VBA
Schritt-für-Schritt-Anleitung
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen
> Modul
.
-
Kopiere den folgenden Code in das Modul:
Sub SucheVariableInSpalte()
Dim temp As Variant
Dim found As Range
Dim i As Long
' Hier wird die Variable temp gesetzt
temp = Worksheets("temp").Cells(i + 6, found).Value
' Suche in Spalte B
Set found = Columns("B:B").Find(What:=temp, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If Not found Is Nothing Then
MsgBox "Wert gefunden in Zeile: " & found.Row
Else
MsgBox "Wert nicht gefunden."
End If
End Sub
-
Stelle sicher, dass Du den Wert von i
und found
vorher korrekt zuweist, bevor Du das Makro ausführst.
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Drücke ALT + F8
, wähle SucheVariableInSpalte
und klicke auf Ausführen
.
Häufige Fehler und Lösungen
Alternative Methoden
Statt Find
kannst Du auch eine Schleife verwenden, um durch die Zellen in der Spalte zu iterieren:
Sub SucheMitSchleife()
Dim temp As Variant
Dim i As Long
Dim cell As Range
temp = Worksheets("temp").Cells(i + 6, 1).Value ' Beispiel für die Zelle
For Each cell In Worksheets("DeinBlattName").Columns("B:B").Cells
If cell.Value = temp Then
MsgBox "Wert gefunden in Zeile: " & cell.Row
Exit For
End If
Next cell
End Sub
Praktische Beispiele
Wenn Du zum Beispiel den Wert "toco wert 20" in Spalte B suchen möchtest, stelle sicher, dass temp
diesen Wert enthält:
temp = "toco wert 20"
Führe dann das Makro aus, um zu sehen, in welcher Zeile dieser Wert gefunden wird.
Tipps für Profis
- Nutze
Option Explicit
am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
- Experimentiere mit den Parametern des
Find
-Befehls, um die Suche zu optimieren. Zum Beispiel kannst Du MatchCase
auf True
setzen, wenn die Groß- und Kleinschreibung relevant ist.
- Verwende Fehlerbehandlung, um sicherzustellen, dass Dein Makro nicht abstürzt, falls ein Wert nicht gefunden wird.
FAQ: Häufige Fragen
1. Wie kann ich die Suche auf mehrere Spalten erweitern?
Du kannst den Find
-Befehl innerhalb einer Schleife für mehrere Spalten nutzen oder die Spalten in einer einzigen Find
-Abfrage angeben.
2. Was mache ich, wenn ich mehrere Treffer finden möchte?
Nutze eine Schleife, um alle Zellen zu durchlaufen und speichere die gefundenen Zeilen in einer Liste oder einem Array.