Array Kalkulation ohne Worksheet
17.07.2020 15:22:47
Karl
ich arbeite gerade an einer Preissimulation für Aktien. Dafür muss ich aus meinen Rohdaten für 100 Tage einen zufälligen Wert in eine Tabelle einfügen. In rawData sind meine Rohdaten hinterlegt. Da ich die Simulation 10.000 mal durchführen muss kann ich die erstellte Array nicht in mein Arbeitsblatt einfügen. Das dauert einfach viel zu lange.
Meine Idee war, die Rohdaten als Array zu definieren, danach eine zweite Array zu definieren in die zufällig einer der Werte für jeden Tag eingefügt wird. Der Großteil hat auch schon funktioniert aber bei:
rand_return = rawData(rand_numb_sim)
OutpArray(m) = rand_return
funktioniert mein Code leider noch nicht. Hat jemand vielleicht eine Lösung? oder einen besseren Vorschlag? Es handelt sich beim hier angezeigten Code nicht um mein komplettes Makro. Hier geht es nur um die Erstellung dieser Array. Sollte der Code funktionieren wird das Ergebnis nicht mehr in das Arbeitsblatt kopiert sondern nur "VBA Intern" zu Berechnungszwecken verwendet.
Code:
Public Sub CreateArray()
Dim Calculation As Worksheet
Dim rawData(0 To 100) As Single
Dim OutpArray(0 To 100) As Long
Set Calculation = Worksheets("Calculation")
Dim m As Long
Dim rand_numb_sim As Long
Dim rand_return As Long
rawData = Calculation.Range("F23:AJ23").Value
For m = 0 To 100
rand_numb_sim = Int(((100 - 1 + 1) * Rnd) + 1)
rand_return = rawData(rand_numb_sim)
OutpArray(m) = rand_return
Next m
Calculation.Range("C3:CX3").Value = OutpArray
End Sub
Schöne Grüße,
Karl Toffelpuffer