Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range in Array innerhalb einer Funktion

Range in Array innerhalb einer Funktion
25.11.2021 12:54:27
Frank
Hallo,
ich habe eine Funktion, der ein Integer und eine Range übergeben wird.
Diese Range möchte ich einmalig in ein Array übergeben um die Performance zu verbessern und nur einen Lesevorgang zu haben.
Leider bricht er ohne Fehlermeldung bei der Übergabe an das Array ab. Hat jemand eine Idee, was ich gerade übersehe?

Function test(Stock As Integer, Forecast As Range) As Integer
Dim i As Integer
Dim Cellcounter As Range
Dim Forecast_Array
Forecast_Array = Forecast
test = Forecast_Array(0)
End Function
Gruß
Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in Array innerhalb einer Funktion
25.11.2021 13:10:18
ChrisL
Hi Frank
Dein Array beginnt wahrscheinlich bei 1 und nicht bei 0.

test = Forecast_Array(1)
bzw.

Debug.Print LBound(Forecast_Array)
cu
Chris
AW: Range in Array innerhalb einer Funktion
25.11.2021 13:15:34
Frank
Hey,
habe auch schon den Index 1 probiert. Aber ich kann einfach die Werte nicht ansprechen und bekomme hier eine Fehlermeldung.
Gruß
Frank
AW: Range in Array innerhalb einer Funktion
25.11.2021 17:30:51
ChrisL
Hi Frank
Ich nehme mal an der Input von Daniel hat geholfen.
Ansonsten bitte mal deinen (Test-)Tabellenbereich (eindimensional, mehrdimensional, horizontal, vertikal) angeben.
cu
Chris
Anzeige
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
Anzeige
AW: Range in Array innerhalb einer Funktion kortek
25.11.2021 13:25:40
Daniel

test = Forecast_Array(1, 1)

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige