如何使用vba关闭excel工作簿?
要关闭Excel文件,必须使用“关闭”方法。使用此方法,您可以指定是否要保存更改。并且,如果要保存并关闭尚未保存的文件,可以在关闭之前指定要保存该文件的路径。
这是 close 方法的语法。
Workbook.Close (SaveChanges, FileName, RouteWorkbook)
关闭工作簿的步骤
- 指定要关闭的工作簿。
- 对此工作簿使用 close 方法。
- 在代码方法中,指示是否要保存文件。
- 最后提及关闭前要保存文件的路径。
在本教程中,我们将了解使用 VBA 关闭 Excel 工作簿的不同方法。
有用的链接:运行宏–宏记录器– Visual Basic 编辑器–个人宏手册
关闭工作簿而不保存
如果您想保存活动工作簿而不保存,则需要使用这样的代码。
ActiveWorkbook.Close SaveChanges:=False
在此代码中,我为“SaveChanges”参数指定“False”。因此,如果工作簿中有任何未保存的更改,VBA 将忽略。如果您想关闭特定的工作簿,可以使用该工作簿的名称。就像下面的代码一样。
Workbooks("book1").Close SaveChanges:=False
如果工作簿中有数据并且忽略“保存更改”参数,Excel 将显示一个对话框以确认是否要保存工作簿。要点是:最好指定“SaveChanges”参数,即使它是可选的。
保存后关闭工作簿
正如您所看到的,CLOSE 方法中有一个参数来指定路径位置。假设您要将“Book6”保存到桌面上的文件夹中。这是您需要使用的代码。
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
此代码会将工作簿“Book6”保存在我桌面上保存的文件夹中,名称为“myFILE.xlsx”。但您需要注意一件事:如果您已有同名的工作簿,它将用新文件替换该文件。
别担心,有一个解决方案可供您使用。以下代码检查是否存在具有您要使用的名称的文件
Sub vba_close_workbook() Dim wbCheck As String wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx") If wbCheck = "" Then Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx" Else MsgBox "Error! Name already used." End If End Sub