Ich fand eine Funktion, die mir ein wahres/falsches Ergebnis zurückgibt, wenn eine bestimmte Zeichenfolge, Nummer oder ein Datum in einem Array ist. Ich änderte es leicht, so dass es mir stattdessen eine Zahl gibt (wenn der Wert im Array ist, gibt es mir die Koordinate, sonst gibt es mir -1).IsInArray Funktion VBA
Public Function IsInArray2(DateToBeFound As Date, arr As Variant) As Long
Dim position As Long
IsInArray2 = -1
For position = LBound(arr, 1) To UBound(arr, 1)
If arr(position) = DateToBeFound Then
IsInArray2 = position
Exit For
End If
Next
End Function
Ich versuche diese Funktion zu verwenden, um zu überprüfen, ob ein Datum in einem Array ist. Wenn ja, kann ich die Koordinate für weitere Berechnungen in meinem Code verwenden.
Problem: Aus irgendeinem Grund bin ich immer und Fehler (Index außerhalb des Bereichs) in der Zeile:
If arr(position) = DateToBeFound Then
ich bereits versucht, das Array-Referenz zu ändern, das Datum zu Nummer zu ändern, um Schnur, und versuchte Redim das Array in Bezug auf die maximale Anzahl der Elemente, die es hat, immer noch, der Fehler besteht weiterhin.
Irgendwelche Ideen?
'arr (position, 1)';) – R3uK
Danke für die Antwort. Das habe ich auch schon ausprobiert, gleiches Ergebnis. In jedem Fall, da das Array nur eine Dimension hat, müsste man angeben, in welcher Dimension es aussehen soll? – DGMS89
Haben Sie Ihr Array manuell erstellt oder aus einer Reihe geladen? Wie übertriffst du es deiner Funktion? Versuchen Sie, Debug.Print LBound (arr, 1) hinzuzufügen: Debug.Print UBound (arr, 1): Debug.Print-Position am Anfang der Schleife. – R3uK