jaydotkay
Goto Top

Instanz suchen und schließen

Hallo Admins,

ich schlage mich mit folgendem Problem herum, vielleicht weiß jemand wie das geht:

Mein Code ist ein Datenauswerteprozess mittels VBA und Excel.

Aufgrund der großen Datenmengen bzw. vieler geöffneter Dokumente wird mit mehreren Instanzen gearbeitet.

Konkret:

- eine (Excel-) Vorlage mit VBA-Code öffnet ein anderes Dokument und führt darin eine Function aus
- diese Function öffnet wiederum mehrere Dokumente in jeweils einer neuen Instanz
- die Vorlage greift dann auf diese Dokumente zu und schließt sie anschließend

Mein Problem:
Die Instanzen wurden nicht von diesem Dokument geöffnet. Daher kann ich sie nicht ansprechen.

Code-Beispiel:
Public Sub AddData()
'strActiveWorkbook = Mappe mit diesem Sub
'strInputWorkbook = Pfad zur geöffneten Inputdatei mit eigener Instanz
Set objInputWorkbook = GetObject(strInputWorkbook)
Set objExcel = GetObject(, "Excel.Application") ' -> liefert Instanz der aktuellen Mappe (falsch)
...(Bearbeitung)...
objInputWorkbook.Close SaveChanges:= False
objExcel.Quit ' schließt die falsche Instanz, Auswertung bricht ab
End Sub

Wie schafft man es die Excelinstanz auch zu schließen? Dürfte wahrscheinlich easy sein, aber ich komm nicht drauf...

Danke und viele Grüße

Content-Key: 264380

Url: https://administrator.de/contentid/264380

Printed on: April 24, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Feb 24, 2015 at 11:38:47 (UTC)
Goto Top
Moin,
von einem Workbook kannst du dir die Excel-Instanz holen
set otherExcelInstance = objInputWorkbook.Application
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.wo ...

Gruß jodel32
Member: jaydotkay
jaydotkay Feb 24, 2015 at 12:25:02 (UTC)
Goto Top
Moin,

top, funktioniert. Danke.

Hatte das bereits probiert, aber ein anderer Fehler hat dann dazwischen gefunkt.

Grüße
jdk