只保存表格对象的值的副本
我find了一个保存Excel工作簿副本的macros。 我想细化macros:
- 保存一个拷贝特定的表格对象;
- 只保存该表的值(不是公式或格式);
目前的VBA脚本是:
Sub Publish() Application.DisplayAlerts = False ActiveWorkbook.SaveCopyAs Filename:= "C:\myfolder\mypublisheddata.xlsm" ActiveWorkbook.Save Application.DisplayAlerts = True End Sub
请检查文件夹“C:\ myfolder”是否已经存在,因为如果不存在,macros将不会创build它,但会失败。
保存为普通文件(.xlsx):
Sub Publish() Application.DisplayAlerts = False ActiveSheet.ListObjects("Table1").Range.Copy Workbooks.Add.Worksheets(1).Range("A1").PasteSpecial xlPasteValues ActiveWorkbook.Close True, "C:\myfolder\mypublisheddata.xlsx" Application.DisplayAlerts = True End Sub
也许你不想立即closures新的WB,你可以使用SaveAs而不是Close。
如果你真的需要保存为启用xlsmmacros,上面的方法可能会失败,你必须这样做:
Sub Publish() Application.DisplayAlerts = False ActiveSheet.ListObjects("Table1").Range.Copy Workbooks.Add.Worksheets(1).Range("A1").PasteSpecial xlPasteValues ActiveWorkbook.SaveAs "C:\myfolder\mypublisheddata.xlsm", xlOpenXMLWorkbookMacroEnabled ActiveWorkbook.Close False Application.DisplayAlerts = True End Sub
在Excel中,有一些“过去特殊”的情况下,其中一个只有粘贴值: Selection.PasteSpecial Paste:=xlPasteValues, ...