Hallo zusammen,
ich würde gerne nachfolgend etwas simulieren. Das klappt auch. Jedoch möchte ich eine Funktion habe, dass wenn die Sprungwahrscheinlichkeit >= als die von mir vorgegene Wahrscheinlichkeit und die zufaelligeblocklaenge >= der von mir vorgegebenen Wahrscheinlichkeit ist, die zufaellige Zeile bis zum erreichen der >= markierung summiert wird.Ich glaube es liegt an der If-Then Formel.
Wäre super, wenn mir dabei jemand helfen könnte.
Vielen Dank.
Option Explicit
Sub simulation()
Dim aktZSK(1 To 5) As Variant
Dim zwischenerg(1 To 5) As Variant
Dim Zeitraum As Integer
Dim anzahlsimulationen As Integer
Dim zufallszahl As Double
Dim Blocklaenge As Integer
Dim Wahrscheinlichkeit As Double
Dim zufaelligeblocklaenge(1 To 5) As Integer
Dim Sprungwahrscheinlichkeit(1 To 5) As Double
Zeitraum = Blatt1.Cells(1, 14)
anzahlsimulationen = Blatt1.Cells(2, 14)
Blocklaenge = Blatt1.Cells(3, 14)
Wahrscheinlichkeit = Blatt1.Cells(4, 14)
Dim i As Integer
Dim j As Integer
Dim z As Integer
For i = 1 To 5
aktZSK(i) = Blatt1.Cells(5, i + 1)
Next i
For j = 1 To anzahlsimulationen
For z = 1 To Zeitraum
zufallszahl = Application.WorksheetFunction.RandBetween(1, 1306)
For i = 1 To 5
Sprungwahrscheinlichkeit(i) = Application.WorksheetFunction.RandBetween(0, 1)
zufaelligeblocklaenge(i) = Application.WorksheetFunction.RandBetween(0, Blatt1.Cells(1, 14))
Next i
If (zufaelligeblocklaenge(i) < Blocklaenge) Or (Sprungwahrscheinlichkeit(i) < Wahrscheinlichkeit) Then
Else
zwischenerg(i) = zwischenerg(i) + Blatt1.Cells(zufallszahl + 4, i + 7)
Next z
For i = 1 To 5
Blatt1.Cells(6 + j, 14 + i) = aktZSK(i) * Exp(zwischenerg(i))
Next i
For i = 1 To 5
zwischenerg(i) = 0
Next i
Next j
End Sub
|