wie kann ich ein Array mit Kürzel (z.b Es) füllen und dann über eine If abfrage einbinden.
Sprich wenn das Kürzel in der array enthalten ist, dann soll etwas bestimmtes gemacht werden.
For i = 0 To ubound([ArrayName], [Dimension])
If Instr([ArrayName][Index],"Es"]) > 0 Then
Sub tt()
Dim arr, Z
arr = Array("ab", "fr", "es", "ht")
For Each Z In arr
If Z = "es" Then
MsgBox "Ja"
End If
Next
End Sub
Sub tt()
Dim arr, Z
arr = Array("1", "fr", "es", "ht")
For Each Z In arr
If Cells(1, 1).Value = Z Then
MsgBox "Ja"
End If
Next
End Sub
Sub tt()
Dim arr, Z
arr = Array("1", "fr", "es", "ht")
For Each Z In arr
If LCase(Z) = LCase(Cells(1, 1).Value) Then
MsgBox "Ja"
End If
Next
End Sub
Sub DIN_Kürzel()
Dim arr, Z
arr = Array("BS", "BA", "WA", "WS")
lr = Cells(Rows.Count, "A").End(xlUp).Row
For i = 13 To lr
For Each Z In arr
If Cells(i, 1).Value = Z Then
Cells(i, 4).Interior.Color = RGB(255, 255, 255)
Else
'Cells(i, 4).Interior.Color = RGB(255, 0, 0)
End If
Next
Next
End Sub
For Each Z In arr
If Cells(i, 1).Value = Z Then
Cells(i, 4).Interior.Color = RGB(255, 0, 0)
Exit For
Else
Cells(i, 4).Interior.Color = RGB(255, 255, 255)
End If
Um ein Array in VBA zu füllen und es für If-Abfragen zu verwenden, kannst du folgende Schritte befolgen:
VBA-Editor öffnen: Drücke ALT
+ F11
, um den VBA-Editor in Excel zu öffnen.
Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen
> Modul
.
Array definieren und füllen: Verwende den folgenden Code, um ein eindimensionales Array zu erstellen und mit Werten zu füllen:
Sub ArrayBefuellen()
Dim arr As Variant
arr = Array("ab", "fr", "es", "ht")
End Sub
If-Abfrage implementieren: Füge den folgenden Code hinzu, um das Array zu durchsuchen und eine Aktion auszuführen, wenn ein bestimmter Wert gefunden wird:
For Each Z In arr
If Z = "es" Then
MsgBox "Ja"
End If
Next
Zusammenführen: Verbinde den Code, um den Inhalt der Zelle A1 mit dem Array zu vergleichen:
Sub tt()
Dim arr As Variant
Dim Z As Variant
arr = Array("1", "fr", "es", "ht")
For Each Z In arr
If Cells(1, 1).Value = Z Then
MsgBox "Ja"
End If
Next
End Sub
Fehler: Das Array wird nicht gefüllt.
Dim arr As Variant
.Fehler: Groß-/Kleinschreibung wird nicht beachtet.
LCase()
für den Vergleich oder füge Option Compare Text
am Anfang deines Moduls hinzu.Fehler: Werte aus dem Array werden nicht korrekt abgefragt.
Exit For
verwendest, um die Schleife zu verlassen, wenn ein Treffer gefunden wurde.Eine Alternative zum Füllen eines Arrays in VBA ist die Verwendung eines Dictionaries. Dies ermöglicht eine schnelle Abfrage von Werten ohne Schleifen. Hier ist ein Beispiel:
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "es", "Wert1"
dict.Add "fr", "Wert2"
If dict.Exists(Cells(1, 1).Value) Then
MsgBox "Ja, der Wert existiert."
End If
Hier sind einige praktische Beispiele, die dir helfen, das Konzept des Arrayfüllens in VBA zu verstehen:
Eindimensionales Array füllen:
Sub BeispielArray()
Dim arr As Variant
arr = Array("A", "B", "C", "D")
Dim i As Integer
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next i
End Sub
Vergleich mit einer Zelle:
Sub VergleicheMitZelle()
Dim arr As Variant
Dim Z As Variant
arr = Array("Ja", "Nein", "Vielleicht")
For Each Z In arr
If LCase(Z) = LCase(Cells(1, 1).Value) Then
Cells(1, 2).Value = "Treffer!"
End If
Next
End Sub
Debug.Print
, um den Inhalt deines Arrays während der Ausführung zu überprüfen.Application.Match
, um die Suche in einem Array zu optimieren.Option Base 1
, wenn du mit Arrays arbeitest, um die Indizes von 1 beginnen zu lassen.1. Wie definiere ich ein mehrdimensionales Array in VBA? Du kannst ein mehrdimensionales Array so definieren:
Dim arr(1 To 5, 1 To 3) As Variant
2. Wie kann ich ein Array dynamisch füllen?
Verwende eine Schleife und die ReDim
-Anweisung, um ein Array dynamisch zu füllen.
Dim arr() As String
ReDim arr(0 To 5)
For i = 0 To 5
arr(i) = "Wert" & i
Next i
3. Gibt es einen Limit für die Größe eines Arrays in VBA? Ja, der maximale Index eines Arrays ist 65535 für eindimensionale Arrays und 32767 für mehrdimensionale Arrays.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen