Wie ein Objekt loslassen und den Speicher löschen in VBA
das ist das erste mal, dass ich post im plus ein amateur-Programmierer, so lassen Sie mich wissen, wenn Sie zusätzliche Informationen benötigen. ich habe Folgendes problem:
mit excel-VBA habe ich eine Verbindung zu einem anderen programm (nämlich Aspen EDR). Für diesen Zweck habe ich ein entsprechendes Add-In installiert. Zugriff auf Aspen EDR ich brauche, um ein Objekt hinzuzufügen. nach im getan ich möchte das Objekt freigeben, das etwas Speicher sparen. erste, was ich versucht habe, ist dies:
Dim ObjEDR As BJACApp
Dim Path As String
Path = 'assume this is the correct path to the file i want to open
Set ObjEDR = New BJACApp ' Create the BJAC object
If Not ObjEDR.FileOpen(Path) Then
MsgBox "Can't open file!"
End If
'...
Set ObjEDR = Nothing
Mein Problem ist: nachdem ich die Objekt nichts, wird excel nicht den Speicher freizugeben (wie ich sehen kann in meinem task-manager). natürlich nach ein paar hundert Iterationen (ich habe zu öffnen, eine Menge von diesen Dateien) bekomme ich eine Fehlermeldung, dass excel aus dem Speicher.
ich habe ein paar threads durchgelesen und anscheinend nichts löscht nur eine Art Verweis auf das Objekt, aber nicht das Objekt selbst, so habe ich versucht, indem fileclose
'...
ObjEDR.FileClose
Set ObjEDR = Nothing
beim ausführen der FileClose-ich kann sehen, dass ein wenig Speicher freigegeben (0,5 3MB), aber es gibt trotzdem noch eine Menge Speicher ansammeln.
Danke für die Hilfe 🙂
gut, der code, den ich zur Verfügung gestellt oben ist mehr oder weniger alles, was ich tun mit diesem programm. Aspen EDR ist nicht sichtbar öffnen. nichts erscheint in der task-manager, wenn ich den code auszuführen. nur Zeichnet sich Speicher nach oben geht, sobald
If Not ObjEDR.FileOpen(Path) Then
ausgeführt wird, thats all ich kann sagen aus meiner Erfahrung. alles, was ich hinzufügen kann, machen es klarer?InformationsquelleAutor caeff | 2015-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen Sie die
New
Schlüsselwort, gibt es keine Notwendigkeit.es behoben wird, entfernen Sie einfach die
New
keyworddas führt zu: "Laufzeitfehler'424': Objekt erforderlich" bei der Ausführung
Set ObjEDR = BJACApp
Wow, Mann, danke!!! verwenden Sie zum definieren (beispielsweise mit Excel-app von Word)
Dim oExcel As Excel.Application
InformationsquelleAutor Uri Goren