21.01.2025, 14:42
Hallo wertes Forum,
wahrscheinlich sehe ich mal wieder den Wald vor lauter Bäumen nicht.
Ich habe einen Code, der Werte aus einem benannten Bereich einliest und anschließend einzeln abarbeiten soll.
Bereits bei ersten Wert bekomme ich einen Laufzeitfehler 9: "Index außerhaln des gültigen Bereichs".
Das ist mein Code bis zum Fehler:
In der Zeile " If arrBatchesIn(intRowIn) = .Range("Output_StartPoint") Then" hängt der Code.
Ubound(arrBatchesIn) ist 82 entsprechend der Anzahl an Zellen im benannten Bereich und über "wksoutput.Cells(62, 19).Resize(UBound(arrBatchesIn), 1) = arrBatchesIn" erhalte ich alle 82 Werte auch wieder schön in meine Datei zurück.
Wo ist mein Fehler???
Hab's jetzt auch mit "If arrBatchesIn(intRowIn, 1) = .Range("Output_StartPoint") Then" probiert und es funktioniert...
Warum???
Das Araay wird doch als eindimensional dimensioniert, warum brauche ich dann noch das ",1"?
Vielen Dank für Eure Hilfe,
Lutz
wahrscheinlich sehe ich mal wieder den Wald vor lauter Bäumen nicht.
Ich habe einen Code, der Werte aus einem benannten Bereich einliest und anschließend einzeln abarbeiten soll.
Bereits bei ersten Wert bekomme ich einen Laufzeitfehler 9: "Index außerhaln des gültigen Bereichs".
Das ist mein Code bis zum Fehler:
Code:
Sub A_SelectionChange()
Dim intLastRow As Integer
Dim blnBatchCopy As Boolean
Dim intBatchCount As Integer, intRowIn As Integer, intRowOut As Integer
Dim arrBatchesIn(), arrBatchesOut()
blnBatchCopy = False
With wksOutput
intBatchCount = .Range("Output_BatchList").Count
ReDim arrBatchesIn(intBatchCount)
ReDim arrBatchesOut(intBatchCount)
arrBatchesIn = .Range("Output_BatchList").Value
For intRowIn = 1 To UBound(arrBatchesIn)
If arrBatchesIn(intRowIn) = .Range("Output_StartPoint") Then 'Hier kommt der Fehler
blnBatchCopy = True
End If
Next intRowIn
End with
Ubound(arrBatchesIn) ist 82 entsprechend der Anzahl an Zellen im benannten Bereich und über "wksoutput.Cells(62, 19).Resize(UBound(arrBatchesIn), 1) = arrBatchesIn" erhalte ich alle 82 Werte auch wieder schön in meine Datei zurück.
Wo ist mein Fehler???
Hab's jetzt auch mit "If arrBatchesIn(intRowIn, 1) = .Range("Output_StartPoint") Then" probiert und es funktioniert...
Warum???
Das Araay wird doch als eindimensional dimensioniert, warum brauche ich dann noch das ",1"?
Vielen Dank für Eure Hilfe,
Lutz