Array in IF-Bedingung verwenden
Schritt-für-Schritt-Anleitung
In diesem Abschnitt zeige ich dir, wie du ein Array in einer IF-Bedingung in VBA verwenden kannst, um Zeilen mit bestimmten Werten zu löschen. Wir verwenden die in dem Forumthread vorgestellte Methode:
-
Öffne Excel und drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)".
- Wähle
Einfügen > Modul
.
-
Kopiere den folgenden Code in das Modul:
Sub BPxWeg()
Dim Skills As Variant
Skills = Array("Skill 1 BSD", "Skill 2 BSD", "TL BSD")
Dim lgRow As Long
Dim i As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
lgRow = ws.Cells(Rows.Count, 3).End(xlUp).Row
With ws
For i = lgRow To 2 Step -1
If IsError(Application.Match(.Cells(i, 3), Skills, 0)) Then
.Rows(i).Delete
End If
Next i
End With
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Führe das Makro aus:
- Drücke
ALT + F8
, wähle BPxWeg
und klicke auf Ausführen
.
Häufige Fehler und Lösungen
Alternative Methoden
Es gibt verschiedene Methoden, um die gleiche Aufgabe zu erledigen. Eine alternative Methode wäre die Verwendung von Filterfunktionen:
-
Filtere die Daten:
- Wähle die Daten in deiner Tabelle aus.
- Gehe zu
Daten > Filter
.
- Setze Filterkriterien auf die Spalte mit den "Skills".
-
Verwende die AutoFilter
-Methode in VBA:
ws.Range("C1").AutoFilter Field:=3, Criteria1:="<>Skill 1 BSD", Operator:=xlOr, Criteria2:="<>Skill 2 BSD", Operator:=xlOr, Criteria3:="<>TL BSD"
Praktische Beispiele
Hier ist ein Beispiel, wie die Funktion in einer realen Anwendung aussehen könnte:
-
Daten in der Spalte C:
Skill 1 BSD
Skill 3 BSD
Skill 2 BSD
Skill 4 BSD
-
Nach Ausführung des Makros werden alle Zeilen mit "Skill 3 BSD" und "Skill 4 BSD" gelöscht, da sie nicht im Array enthalten sind.
Tipps für Profis
- Nutze
Option Explicit
am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
- Berücksichtige die Verwendung von
With
-Blöcken, um deinen Code effizienter und übersichtlicher zu gestalten.
- Teste das Makro zuerst in einer Kopie deiner Datei, um versehentliche Datenverluste zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich das Array anpassen?
Du kannst die Werte im Array einfach ändern, indem du die Einträge in der Zeile Skills = Array(...)
anpasst.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen, einschließlich Excel 2010 bis 2021 und Excel 365.
3. Was mache ich, wenn mein Array mehr als drei Werte hat?
Das Array kann beliebig viele Werte enthalten. Füge einfach mehr Werte in die Klammern ein, z.B. Skills = Array("Skill 1 BSD", "Skill 2 BSD", "TL BSD", "Skill 4 BSD")
.