AW: Range in Array innerhalb einer Funktion
25.11.2021 13:13:34
Daniel
Hi
1. deklarieren test als Variante, da du nicht weißt, was im Zellbereich drin ssteht, es könnte ja auch Text sein.
2. damit die Übergabe ins Array eindeutig wird, gib bitte an, dass du die Werte ins Array über geben willst:
Forecast_Array = Forecast.value
Kann sein, dass man das .Value hier nicht braucht, aber so ist es beim lesen klarer.
3. bei dieser Übergabe musst du zwei Fälle unterscheiden:
a) Forecast ist nur eine Zelle groß
Dann wird Forecast_Array kein Array, sondern nur eine einfache Wertvariable
b) Forecast umfasst mehrere Zellen
Dann bekommst du ein Array, aber ein zweidimensionales Array, bei dem du Zeilen und Spaltenindex angeben musst.
Außerdem ist der Startindex nicht 0 sondern 1.
Ich weiß ja nicht was du machen willst, aber so sollte dein Code funktionieren:
Function test(Stock As Integer, Forecast As Range)
Dim i As Integer
Dim Cellcounter As Range
Dim Forecast_Array
Forecast_Array = Forecast.Value
If Forecast.Cells.Count = 1 then
test = Forecast_Array
Else
Test = Forecast(1, 1)
End if
End Function
Gruß Daniel