Save
保存工作簿。如果工作簿从未保存过,则 Excel 会将其保存在当前文件夹(项目的 \bin 目录)中,并使用创建该工作簿时指定的名称。如要指定路径,则应调用 SaveAs 方法。以下代码保存所有打开的工作簿:
' Visual Basic
Dim wb As Excel.Workbook
For Each wb in ThisApplication.Workbooks
wb.Save
Next wb
// C#
foreach(Excel.Workbook wb in ThisApplication.Workbooks)
{
wb.Save();
}
SaveAs
SaveAs 比 Save 方法更为复杂。此方法使您可以保存指定的工作簿,并可以选择指定名称、文件格式、密码、访问模式等等。以下代码以 XML 格式将当前工作簿保存到指定位置:
' Visual Basic
ThisApplication.ActiveWorkbook.SaveAs("C:\MyWorkbook.xml", _
FileFormat:=Excel.XlFileFormat.xlXMLSpreadsheet)
// C#
ThisApplication.ActiveWorkbook.SaveAs(@"C:\MyWorkbook.xml",
Excel.XlFileFormat.xlXMLSpreadsheet,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
提示 以某些格式保存时需要进行交互,因此在调用 SaveAs 方法前,可能需要将 Application.DisplayAlerts 属性设置为 False。当 Application.DisplayAlerts 设置为 False 时,将使用默认设置。例如,将工作表保存为 XML 格式时,Excel 将提醒您无法将 VBA 项目与工作簿一起保存。将 DisplayAlerts 属性设置为 False 可取消此警告。
SaveCopyAs
将工作簿的副本保存到文件,但不会在内存中修改打开的工作簿。如果要在不修改工作簿位置的情况下创建一个备份副本,可使用此方法。
' Visual Basic
ThisApplication.ActiveWorkbook.SaveCopyAs("C:\Test.xls")
// C#
ThisApplication.ActiveWorkbook.SaveCopyAs(@"C:\Test.xls");
注意 以交互方式取消任何用于保存或复制工作簿的方法都会在代码中引发运行时错误。例如,如果过程调用了 SaveAs 方法,但未禁用 Excel 的提示,并且用户在得到提示时单击了“取消”,则 Excel 引发一个运行时错误返回给代码。 |