Ich erstelle derzeit eine Excel-Arbeitsmappe, die eine Monte-Carlo-Simulation ausführt. Der Simulator-Code befindet sich derzeit jedoch in Javascript, und die vollständige Portierung auf VBA scheint angesichts der Unerfahrenheit des Teams mit dieser Sprache nicht trivial zu sein. Also, ich konnte die JavaScript-Komponenten in eine WSC-Datei integrieren, was gut funktioniert. (Vereinfachtes Beispiel unten.)Verwenden von Javascript in Excel
Sub Simulate()
Set ATPSim = GetObject("script:http://www.example.com/ATPSim.wsc")
'Set ATPSim = GetObject("script:C:\ATPSim.wsc")
Dim ParamOne As Integer
ParamOne = Range("B2").Value
Dim ParamTwo As Double
ParamTwo = Range("B3").Value
Dim ParamThree As Double
ParamThree = Range("B4").Value
Range("B1").Value = ATPSim.simulate(ParamOne, ParamTwo, ParamThree)
End Sub
Leider ist dies mir erfordert den Javascript-Code zu hosten oder auf ungekünstelt Benutzer verlassen, um den absoluten Pfad zu aktualisieren. Gibt es eine in sich geschlossene Lösung? Ich würde es vorziehen, alles in einer .xlsm-Datei zu speichern, die per E-Mail an die Benutzer gesendet werden kann.
Sie die js in einer Zelle gespeichert werden könnte (wenn es nicht zu viel Code ist) und dass dann eine Datei zu schreiben, verwenden, um auf den temporären Ordner des Benutzers. –
Gefällt mir http://chandoo.org/wp/2010/05/06/data-tables-monte-carlo-simulations-in-excel-a-comprehensive-guide/? – deusxmach1na
Die Temp-Ordner-Idee ist eine interessante, die funktionieren sollte. Ich muss mich darum kümmern. Der endgültige Simulationscode wird wahrscheinlich ziemlich komplex sein, aber ich bezweifle, dass er ein paar hundert KB überschreiten wird. Das Chandoo Tutorial verwendet reines Excel anstatt VBA oder JS. Leider hat diese Simulation viel zu viele Verzweigungspunkte, um mit einer Tabellenkalkulation zu modellieren (es würde ungefähr 100 Millionen Zellen erfordern). – Izomiac