Jedoch bekomme ich immer noch die Speichermeldungen,
EDIT: Ich vermute, das ist nicht die Speichermeldung, sondern die ScreenUpdate-Meldung ("..Datei wurde verändert, soll die Datei neu geladen werden" - oder so ähnlich). Das musst du natürlich auch abfangen, siehst du in meiner Close-Funktion. Obwohl das in der normalen _Excel_Open-Funktion, die du kpl. mit False für alle Parameter setzt, ja auch deaktiviert sein sollte.
Ich verwende bei mir eine eigene Open und Close - Funktion, die jeweils Excel-Objekt erstellen und Workbook öffnen, sowie Workbook speichern und Objekt schließen in einem Rutsch erledigt. Da poppt keine Dialogbox auf.
Vielleicht kannst du es verwenden:
AutoIt
Func _ExcelBookOpen($_sFilePath, $_bVisible=1, $_bReadOnly=False)
Local $_oExcel = ObjCreate("Excel.Application")
If NOT IsObj($_oExcel) Then Return SetError(1, 0, 0)
If NOT FileExists($_sFilePath) Then Return SetError(2, 0, 0)
If $_bVisible > 1 Then $_bVisible = 1
If $_bVisible < 0 Then $_bVisible = 0
With $_oExcel
.Visible = $_bVisible
.WorkBooks.Open($_sFilePath, Default, $_bReadOnly)
.ActiveWorkbook.Sheets(1).Select()
EndWith
Return $_oExcel
EndFunc ;==>_ExcelBookOpen
Func _ExcelBookClose($_oExcel, $_bSave = 1, $_bAlerts = 0)
If NOT IsObj($_oExcel) Then Return SetError(1, 0, 0)
If $_bSave > 1 Then $_bSave = 1
If $_bSave < 0 Then $_bSave = 0
If $_bAlerts > 1 Then $_bAlerts = 1
If $_bAlerts < 0 Then $_bAlerts = 0
$_oExcel.Application.DisplayAlerts = $_bAlerts
$_oExcel.Application.ScreenUpdating = $_bAlerts
If $_bSave Then
$_oExcel.ActiveWorkBook.Save
EndIf
$_oExcel.Application.DisplayAlerts = True
$_oExcel.Application.ScreenUpdating = True
$_oExcel.Quit
Return 1
EndFunc ;==>_ExcelBookClose
Alles anzeigen