只保存表格对象的值的副本

我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, ...