如何使用vba关闭excel工作簿?

要关闭Excel文件,必须使用“关闭”方法。使用此方法,您可以指定是否要保存更改。并且,如果要保存并关闭尚未保存的文件,可以在关闭之前指定要保存该文件的路径。

这是 close 方法的语法。

 Workbook.Close (SaveChanges, FileName, RouteWorkbook)
用vba关闭工作簿

关闭工作簿的步骤

  1. 指定要关闭的工作簿。
  2. 对此工作簿使用 close 方法。
  3. 在代码方法中,指示是否要保存文件。
  4. 最后提及关闭前要保存文件的路径。

在本教程中,我们将了解使用 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

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注