VBA - 何时指定ActiveWorkbook

时间:2017-07-28 17:03:33

标签: excel vba excel-vba

编写VBA代码时,如果您知道自己将在同一工作簿和某个工作表中运行,那么您是否应该为代码中的工作簿对象指定ActiveWorkbook? 例如:
ActiveWorkbook.Sheets("Sheet1").Range("$A$1")
VS
Range("$A$1")
上面的代码假设您正在通过本地宏(在VBA中的Sheet1对象下)处理Sheet1。

1 个答案:

答案 0 :(得分:1)

在大多数情况下使用ActiveWorkbook比使用WorkBooks("Book1")更好使用Range("A1")这更具体,更强大,我认为执行比激活工作簿更快,然后在引用范围时指向它。

如果在使用Promise等代码行时未指定VBA,则VBA将默认为最后一个活动工作簿。因此,如果您只使用一个工作簿,则不需要,因为上一个活动工作簿应始终为您希望代码执行的工作簿。我通常只在我在单个工作簿中工作时指定工作表和范围,因为告诉excel选择活动工作簿时默认情况下它是有点多余的。没有特定的工作簿名称。

确保您将从打开的工作簿中运行希望代码执行的宏。

包含工作簿指定永远不会受到影响,它将使您的代码更加健壮。但是,如果您只在单个工作簿中执行代码,则没有必要。