VBA: Code schließt Datei nicht richtig
15.01.2013 12:40:55
Hans-Jürgen
Ich möchte aus einem Makro heraus mehrere andere Workbooks öffnen, um daraus Daten zu beziehen. Das klappt auch, er bezieht die Daten und schliesst das Workbook wieder.
Ich habe aber aktuell das Problem, dass ich nach Ausführung immer die Meldung bekomme "Nicht genügend Speicher", sobald ich den Editor über Alt+F11 aufrufen will. Im Projekt-Explorer ist auch noch das Workbook genannt, was aber eigentlich schon längst geschlossen ist (jedenfalls das Fenster).
Ändern kann ich im Editor dann nichts, aber wenn ich oben auf "Stop" klicke (blaues Quadrat) gehts wieder, dies eigentlich geschlossene Workbook verschwindet dann auch.
Das Öffnen der Datendatei ist in einer Sub ausgelagert, weil verschiedene Tätigkeiten damit in Verbindung stehen, die bei allen Datendateien dieselben sind. Habe aber testweise diesen Code mal ins Hauptprogramm gehievt, da gibts genau dasselbe Problem. An dem Öffnen aus dem Sub scheints also nicht zu liegen.
Es hat aber definitiv was mit dem Öffnen/Schliessen der Datendatei zu tun. Wenn ich das auskommentiere, ist alles schick.
Vielen Dank
Hans-Jürgen
P.S. falls wichtig, hier der entsprechende Teil vom Code:
Dim WHaupt, WDat1, WDat2, WDat3 as Excel.Workbook
Dim THaupt, TDat1, TDat2, TDat3 as Excel.Worksheet
Function Aktualisieren ()
Set WHaupt = Active.Workbook
Set THaupt = WHaupt.Worksheets("Hauptseite")
Call Datei laden (WDat1, TDat1, "Übersichtsseite", "Pfad")
' hier stehen die Dateioperationen
WDat1.Close
'hier werden später noch die anderen Dateien auch geöffnet/geschlossen
End Function
Sub Datei Laden (w,t,s,y)
Application.ScreenUpdating = False
Set w = Application.Workbooks.Open(TPara.Cells(y, 2))
w.Application.DisplayAlerts = False
Set t = w.Worksheets(s)
ActiveWindow.WindowState = xlMinimized
Application.ScreenUpdating = True
THaupt.Cells(33, 27) = THaupt.Cells(33, 27)
ActiveWindow.WindowState = xlMaximized
End Sub
Zur Erläuterung der Sub:
- Die Sachen mit Screen Updating/Minimieren/Maximieren sind drin, damit während der Dateiöffnung der Fokus nicht wechselt. Habe ich aber schon mal auskommentiert, hat es auch nicht gebracht
- Die vorletzte Zeile ist dazu da,den Fokus vor dem Maximieren wieder auf das Haupt-Workbook zu legen.