【问题标题】:Save Xlsm file as xlsx将 Xlsm 文件另存为 xlsx
【发布时间】:2014-09-17 10:29:05
【问题描述】:

我想将当前的 xlsm 文件保存为 xlsx,所以我编写了如下代码。这段代码确实完成了它的工作,我可以看到保存为 Myfile.xlsx 的文件,就像我在代码中定义的那样,但是有一些小问题,vba 总是将文件保存到另一个文件作为 bookx.xlsx 旁边我的文件.xlsx。我怎样才能避免这种情况?

Sub saveAsXlsx()
Dim myPath As String
myPath = Application.ActiveWorkbook.Path
Worksheets(Array("sheet1", "sheet2")).Copy
ActiveWorkbook.SaveCopyAs Filename:=myPath & "\Myfile.xlsx" 
End Sub

【问题讨论】:

  • 它不会创建另一个文件,它只是打开一个具有该名称的新工作簿 (BookX.xlsx)。你只需要在你的脚本之后关闭那个窗口。
  • 我怎样才能关闭那个窗口?
  • Activeworkbook.Close False

标签: excel vba


【解决方案1】:

这将避免多余的副本:

Sub saveAsXlsx()
    Dim myPath As String
    myPath = Application.ActiveWorkbook.Path
    Worksheets(Array("sheet1", "sheet2")).Copy
    ActiveWorkbook.SaveAs Filename:=myPath & "\Myfile.xlsx"
    ActiveWorkbook.Close
End Sub

这使用 SaveAs 而不是 SaveCopyAs,因为您已经创建了第一个副本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多