InStr mit If kombinieren in Excel VBA
Schritt-für-Schritt-Anleitung
Um den Inhalt einer Zelle in Spalte F basierend auf einer Bedingung in Spalte B zu kopieren, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob der Text "L2" in einer Zelle der Spalte B vorhanden ist und kopiert dann den Inhalt von Spalte E nach Spalte F.
- Öffne deinen Excel-Arbeitsmappe und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Wähle im Projekt-Explorer das entsprechende Arbeitsblatt aus.
- Füge den folgenden Code in das Modul ein:
Sub test2()
Dim b As Long
Dim MeineSuche As String
MeineSuche = "L2"
With Sheets("Liste")
For b = 600 To 7 Step -1
If InStr(.Cells(b, 2).Value, MeineSuche, vbTextCompare) > 0 Then
.Cells(b, 6).Value = .Cells(b, 5).Value
End If
Next b
End With
End Sub
- Schließe den VBA-Editor und führe das Makro aus, um die Änderungen vorzunehmen.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode, um die gleiche Aufgabe zu erledigen, ist die Verwendung von Excel If Instr
in einer Formel direkt in Excel:
=IF(ISNUMBER(SEARCH("L2", B1)), E1, "")
Diese Formel prüft, ob "L2" in Zelle B1 enthalten ist und gibt den Wert von E1 zurück, wenn dies zutrifft. Andernfalls bleibt die Zelle leer.
Praktische Beispiele
Angenommen, du hast folgende Daten in Spalte B und E:
B |
E |
Text1 |
Wert1 |
L2abc |
Wert2 |
Text3 |
Wert3 |
L2xyz |
Wert4 |
Nach Ausführen des VBA-Codes wird das Ergebnis in Spalte F sein:
B |
E |
F |
Text1 |
Wert1 |
|
L2abc |
Wert2 |
Wert2 |
Text3 |
Wert3 |
|
L2xyz |
Wert4 |
Wert4 |
Tipps für Profis
- Verwende
VBA If Not InStr
: Wenn du die Logik umkehren möchtest, also etwas kopieren, wenn "L2" nicht vorhanden ist, kannst du If Not InStr(.Cells(b, 2).Value, MeineSuche) > 0 Then
verwenden.
- Kombiniere If-Anweisungen: Du kannst auch
Excel VBA If And Or kombinieren
, um komplexere Bedingungen zu prüfen.
FAQ: Häufige Fragen
1. Frage: Was ist InStr
in VBA?
Antwort: InStr
ist eine Funktion in VBA, die verwendet wird, um die Position eines Teilstrings in einem String zu finden. Sie gibt die Position zurück, an der der Teilstring gefunden wurde oder 0, wenn er nicht vorhanden ist.
2. Frage: Wie kann ich InStrRev
verwenden?
Antwort: InStrRev
funktioniert ähnlich wie InStr
, sucht jedoch von hinten nach vorne. Dies ist nützlich, wenn du den letzten Vorkommen eines Teilstrings finden möchtest.