如何通过vba激活excel工作簿?
当您同时处理多个工作簿时,我的意思是,当您同时打开多个工作簿时,您需要知道可以帮助您激活要处理的工作簿的方法。
要使用 VBA 激活工作簿,必须使用 Workbook.Activate 方法。在此方法中,您需要使用 Workbook 对象指定工作簿名称。它还允许您使用工作簿编号而不是工作簿名称,但您只能引用打开的工作簿。
在本教程中,我们将了解使用此方法的不同方式。
激活工作簿的步骤
- 输入“Binders”以使用活页夹对象。
- 用双引号指定工作簿名称。
- 输入句点 (.) 以获取属性和方法的列表。
- 从列表中选择激活方法,或者您也可以输入它。
- 最后,运行代码以激活工作簿。
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
注意:如果您尝试激活未打开的工作簿,VBA 将显示错误。
有用的链接:运行宏–宏记录器– Visual Basic 编辑器–个人宏手册
使用号码激活工作簿
当您打开多个工作簿时,所有这些工作簿都会成为工作簿集合的一部分,并有一个可供您引用的编号,然后您可以对其使用 activate 方法。这是代码:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub
如果您尝试使用不存在的数字激活工作簿,VBA 将显示运行时错误“9”(下标超出范围)。
激活此工作簿
您可以使用 ThisWorkbook 属性引用您在其中编写代码的工作簿。假设您同时打开了五个工作簿,但您正在处理“Book1.xlsm”,因此当您运行以下代码时,它将激活“Book1.xlsm”。
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
激活工作簿之前检查
正如我所说,当您尝试激活未打开的工作簿时,VBA 会向您显示错误。要解决这个问题,最好的办法是先检查工作簿名称(是否打开),然后激活它。
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
使用上面的代码,您可以指定一个工作簿名称,这将首先在所有打开的工作簿中检查该工作簿,如果找到该工作簿,则会激活它。
评论
- 使用工作簿名称时,请确保使用正确的文件扩展名
- 如果要激活尚未保存的工作簿,则必须仅使用该工作簿的名称,而不添加文件扩展名后缀。