我找到了一个用于保存Excel工作簿副本的宏。我想将宏改进为:
当前的VBA脚本是:
Sub Publish()
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:= "C:\myfolder\mypublisheddata.xlsm"
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:1)
请检查文件夹" C:\ myfolder"已存在,因为如果没有,宏将不创建它但失败。
要保存为普通文件(.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
也许您不想立即关闭新WB,您可以使用SaveAs而不是Close。
如果你真的需要保存为xlsm宏启用,上面的方法可能会失败,你必须这样做:
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
答案 1 :(得分:0)
在Excel中,有一些"过去特别"例如,其中一个只粘贴值:Selection.PasteSpecial Paste:=xlPasteValues, ...