Anscheinend ist der Eintrag für dieses Formular zu lang. Ich versuch's mal, indem ich den Code in zwei Teilen einstelle. Hier der erste Teil:
Option Explicit
Sub MonteCarloSimulation()
Dim i As Integer, j As Integer '<==i sind Zeilen, j sind Spalten
Dim xArray(100000, 100) As Double
Dim piArray(100000, 100) As Double
Dim yArray(100000, 100) As Double
Dim lnArray(100000, 100) As Double
Dim XXArray(100000, 100) As Double
Dim wArray(100000, 100) As Double
Dim wAverage(100) As Double
'=====x- und piArray mit normalverteilten zufallszahlen füllen===
For i = 0 To 99999
For j = 0 To 99
xArray(i, j) = Application.WorksheetFunction.NormInv(zufallszahl, Range("E19"), Range("F19")) '<- ES SIND IMMER DIE GLEICHEN ZAHLEN IM ARRAY! - Kombination der Funktion mit Randomize?
piArray(i, j) = Application.WorksheetFunction.NormInv(zufallszahl, Range("E20"), Range("F20"))
yArray(i, j) = Int(Rnd + 0.005) '<- das yArray soll mit Nullen (zu 99,5%) und Einsen (zu 0,5%) gefüllt werden - funktioniert das so?
Next j
Next i
'======lnArray mit Werten aus Formel füllen und und in X umrechnen =========
For i = 0 To 99999
lnArray(i, 0) = Application.WorksheetFunction.Ln(Range("B2")) '<-- X=2 als Startparameter
XXArray(i, 0) = Range("B2")
For j = 1 To 99
lnArray(i, j) = lnArray(i, j - 1) + xArray(i, j) + (piArray(i, j) * yArray(i, j)) '<- alle weiteren Zellen hängen von der in der vorhergehenden Spalte ab - passt das so?
XXArray(i, j) = Exp(lnArray(i, j))
Next j
Next i
'und der zweite folgt sogleich |