使用worksheet.saveas保存Excel文件时出错

时间:2013-01-03 03:37:29

标签: excel matlab excel-vba vba

我有一个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

代码运行正常。但是,当我尝试打开文件时,出现以下错误:

enter image description here

但是,当通过SaveAs菜单将temp.xls保存到temp.xlsm时,它会打开而不会出现任何错误。

知道代码中的错误是什么,或者我错过了什么。

由于

1 个答案:

答案 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

Reference: