Hallo zusammen,
ich habe in den letzten Tagen das untenstehende Programm geschrieben, um eine Monte-Carlo-Simulation durchzuführen (100000 Simulationsdurchläufe mit 100 Zeitabschnitten), mit der Excel allein überfordert ist. Das Programm läuft im Prinzip fehlerfrei durch (bis auf die Tatsache, dass Excel bei der Berechnung abstürzt), jedoch passen einige Berechnungen nicht. Ich hoffe, ihr könnt mir ein bisschen weiterhelfen. Falls der Code etwas amateurhaft aussieht, bitte ich das zu entschuldigen, da ich mich erst seit einer Woche mit VBA beschäftige. Die Probleme, die auftreten, habe ich jeweils im Code angemerkt.
Ein weiteres Problem ist, dass Excel immer abstürzt, wenn ich das Makro ausführe. Kann ich das irgendwie beheben oder brauche ich nur einen stärkeren Rechner?
Grüsse und schon mal vielen Dank, Christoph
Option Explicit
Sub MonteCarloSimulation()
Dim i As Integer, j As Integer ' 0 Then '<- in diesem Abschnitt ist wohl ein Fehler, kann auch daran liegen, dass bisher im yArray keine Einsen vorkamen und somit das lnArray nie <0 geworden ist
wArray(i, j) = 0
Else: wArray(i, j) = Range("B7") - Range("B8") * XXArray(i, j)
End If
Next j
Next i
'=====Berechnung der durchschnittlichen Abschreibung je Periode j=====
For i = 0 To 99999
For j = 0 To 99
wAverage(j) = wAverage(j) + wArray(i, j)
Next j
wAverage(j) = wAverage(j) / 100000
Next i
Sheets("Tabelle1").[a1:a100] = wAverage(j) '<= Druckanforderung an Excel (stimmt das so?)- ich will, dass das komplette wAverage-Array in meinem Excel-Sheet ("Tabelle1") erscheint
End Sub
'==========Generierung der Zufallszahlen=========
Function zufallszahl() As Double
Randomize
zufallszahl = Rnd()
End Function |