如何在excel中使用thisworkbook vba变量?
在 VBA 中,您可以使用 ThisWorkbook 属性来引用您在其中编写代码的工作簿。使用它时,您可以访问当前工作簿的所有属性和方法。简单地说,您可以在不使用名称的情况下运行当前工作簿中的所有任务。
假设您要计算当前工作簿中的工作表数量。您需要编写的代码如下。
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub
当您运行此代码时,将出现一个消息框,其中包含当前工作簿中的工作表数。
正如我所说,当您使用 ThisWorkbook 时,它使您可以访问当前工作簿的属性和方法。当您输入句点 (.) 查看完整列表时,您可以看到所有这些内容。
有用的链接:运行宏–宏记录器– Visual Basic 编辑器–个人宏手册
将 ThisWorkbook 与变量一起使用
接下来,我将向您展示一个声明变量以使用 ThisWorkbook 属性的真实代码示例。假设您要在当前工作簿中执行多项活动。
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
在此代码的第一部分中,您有一个变量,然后为其指定“ThisWorkbook”属性。然后在第二部分中,您可以使用WITH 语句来使用当前变量执行多个活动。
ActiveWorkBook 与本工作簿
让我用一个简单的类比来向您解释一下,请耐心听我接下来的 2 分钟。
您同时打开了两个工作簿(Book1 和 Book2)。您在 book1 中编写代码,但此时 book2 处于活动状态。因此,当您运行引用 ActiveWorkbook 的代码时,它将在 Book2 中执行此活动。
但是,当您使用 ThisWorkbook 时,VBA 始终引用编写代码的工作簿。
事情是这样的:使用 ThisWorkbook 总是更好,因为它消除了出错的机会。