Hallo zusammen,
ich habe eine Anwendung programmiert, die Excel mit dem Solver lösen soll. Die Ergebnisse werden dann wieder zurückgegeben, sodass ich sie dann in der Windows Form darstellen und im Diagramm einpflegen kann. Das funktioniert auch mehr oder weniger.
Die Prozedur ist wie folgt:
(1) CodeMakro ist ein Makrocode:
Dim CodeMakro As String
CodeMakro = "Sub ABC()" & vbcrl & "Code" & vbcrlf & "End Sub"
(2) Dann wird ein Modul in Excel hinzugefügt:
Dim oModule1 As VBIDE.VBComponent
oModule1 = oBook.VBProject.VBComponents.Add(1)
(3) In dieses Modul wird CodeMakro dann eingefügt:
oModule1.CodeModule.AddFromString(CodeMakro)
(4) Anschließend wird das Makro ausgeführt:
oExcel.Run("'" & oBook.Name & "'!ABC")
Mein Problem ist die Laufzeit. Die Berechnung, also Schritt 4, geht recht "flott". Schritt 2 und 3 sind anscheinend relativ "zeitintensiv".
Liegt es daran, dass ich ein neues Modul hinzufüge und dann mein CodeMakro dort einfüge?
Gibt es eine Möglichkeit den Solver direkt anzusprechen oder geht es mit VB.Net nur indirekt über Modul und Makro?
Im Internet habe ich leider auch nur die indirekte Methode gefunden.
Ich bedanke mich schon mal im Voraus und wünsche noch einen schönen Sonntag.
Gruß,
Frank
ich habe eine Anwendung programmiert, die Excel mit dem Solver lösen soll. Die Ergebnisse werden dann wieder zurückgegeben, sodass ich sie dann in der Windows Form darstellen und im Diagramm einpflegen kann. Das funktioniert auch mehr oder weniger.
Die Prozedur ist wie folgt:
(1) CodeMakro ist ein Makrocode:
Dim CodeMakro As String
CodeMakro = "Sub ABC()" & vbcrl & "Code" & vbcrlf & "End Sub"
(2) Dann wird ein Modul in Excel hinzugefügt:
Dim oModule1 As VBIDE.VBComponent
oModule1 = oBook.VBProject.VBComponents.Add(1)
(3) In dieses Modul wird CodeMakro dann eingefügt:
oModule1.CodeModule.AddFromString(CodeMakro)
(4) Anschließend wird das Makro ausgeführt:
oExcel.Run("'" & oBook.Name & "'!ABC")
Mein Problem ist die Laufzeit. Die Berechnung, also Schritt 4, geht recht "flott". Schritt 2 und 3 sind anscheinend relativ "zeitintensiv".
Liegt es daran, dass ich ein neues Modul hinzufüge und dann mein CodeMakro dort einfüge?
Gibt es eine Möglichkeit den Solver direkt anzusprechen oder geht es mit VB.Net nur indirekt über Modul und Makro?
Im Internet habe ich leider auch nur die indirekte Methode gefunden.
Ich bedanke mich schon mal im Voraus und wünsche noch einen schönen Sonntag.
Gruß,
Frank