Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将Xlsm文件另存为xlsx_Excel_Vba - Fatal编程技术网

Excel 将Xlsm文件另存为xlsx

Excel 将Xlsm文件另存为xlsx,excel,vba,Excel,Vba,我想将当前的xlsm文件保存为xlsx,因此我编写了如下代码。这段代码真的完成了它的工作,我能够看到文件保存为Myfile.xlsx,正如我在代码中定义的那样,但是有一些小问题,vba总是将文件保存到Myfile.xlsx旁边的另一个文件bookx.xlsx。我怎样才能避免这种情况 Sub saveAsXlsx() Dim myPath As String myPath = Application.ActiveWorkbook.Path Worksheets(Array("sheet1", "s

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

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

这将避免额外的副本:

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

它不创建另一个文件,只打开一个同名的新工作簿(BookX.xlsx)。您只需要在脚本之后关闭该窗口。如何关闭该窗口?Activeworkbook.close False