Da die Standardfunktion von AutoIt für die neuen Excelversionen nicht mehr funktioniert, hab ich eine neue Funktion dafür geschrieben.
Derzeit kann man als xlsx, xlsb, xlsm, csv, txt, prn und xls Speichern, andere Dateiendungen such ich noch raus und editier sie dann hier rein
Spoiler anzeigen
;===============================================================================
; Function Name: _ExcelSaveAsEX($oExcel, $Fileformat, $NewFilepath, $Close = True)
; Description: Speichert eine Exceldatei in einem bestimmten Format ab
; Parameter(s): $oExcel Ein Excelobject, wie es von _ExcelbookOpen oder _ExcelbookNew zurückgegeben wird
; $Fileformat Der Dateityp, in dem gespeichert werden soll (xlsx, xlsb, xlsm, xls, csv, txt, prn)
; $NewFilepath Speicherort und Dateiname der neuen Datei
; $Close = True Soll nach dem Speichern das Objekt geschlossen werden? (Standard = True)
; Return Value(s): Erfolg Gibt 1 zurück
; Fehler @error 1 - $oExcel ist kein Objekt
; 2 - $Fileformat ist keine bekannte Dateiendung oder Formatnummer
; Author(s): TheLuBu ([email='LuBu@veytal.com'][/email])
; Copyright: TheLuBu ([email='LuBu@veytal.com'][/email])
;===============================================================================
Func _ExcelSaveAsEX($oExcel, $Fileformat, $NewFilepath, $Close = True)
If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
Switch $Fileformat
Case 51, "xlsx", ".xlsx"
$Fileformat = 51
Case 50, "xlsb", ".xlsb"
$Fileformat = 50
Case 52, "xlsm", ".xlsm"
$Fileformat = 52
Case 6, "csv", ".csv"
$Fileformat = 6
Case -4158, "txt", ".txt"
$Fileformat = -4158
Case 36, "prn", ".prn"
$Fileformat = 36
Case 56, "xls", ".xls"
$Fileformat = 56
Case Else
Return SetError(2, 0, 0)
EndSwitch
With $oExcel
.Application.DisplayAlerts = False ; Schaltet Fehlermeldungen bei Excel aus
.ActiveWorkBook.SaveAs($NewFilepath, $Fileformat)
If $Close Then
.ActiveWorkbook.Close ; Schließt die Tabelle
.Quit ; Schließt das Workbook
EndIf
EndWith
Return 1
EndFunc ;==>_ExcelSaveAsEX