我有一个Excel模板文件。基于Excel版本,我想通过Matlab将SaveAs作为Temp.xlsm。
以下是我用来保存模板文件的代码:
if(XLversion >= 12.0)
Workbook = invoke(Excel.Workbooks,'Open',tempxls);
tempxls1 = [pwd '\utils\temp.xlsm'];
Workbook.SaveAs(tempxls1,1);
tempxls = tempxls1;
extn = 'xlsm';
end
代码运行正常。但是,当我尝试打开文件时,出现以下错误:
但是,当通过SaveAs菜单将temp.xls保存到temp.xlsm时,它会打开而不会出现任何错误。
知道代码中的错误是什么,或者我错过了什么。
由于
答案 0 :(得分:1)
请试试以下代码并发表评论。您可以将此sub-routine
称为保存为文件。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim FileNameVal As String
If SaveAsUI Then
FileNameVal = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")
Cancel = True
If FileNameVal = "False" Then 'User pressed cancel
Exit Sub
End If
Application.EnableEvents = False
If Right(ThisWorkbook.Name, 5) <> ".xlsm" Then
ThisWorkbook.SaveAs Filename:=FileNameVal & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.SaveAs Filename:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
Application.EnableEvents = True
End If
End Sub