1

我有一个 Excel 模板文件。基于Excel版本,我想通过Matlab另存为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 时,它会打开而没有任何错误。

任何想法可能是代码中的错误或如果我遗漏了什么。

谢谢

4

1 回答 1

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

参考:

于 2013-01-03T04:02:14.350 回答