在Excel VBA中设置活动工作簿的值

Mat*_*dge 6 excel vba excel-vba

我现在以这种方式设置我的工作簿,在工作簿被硬编码到Set命令的地方,我想知道是否有这样做的方法所以我可以把它放在流畅的地方?因此,无论此代码放在何处(在另一个工作簿中),代码都将适应它的新环境.

这有意义吗?

以下是我现在正在使用的内容,我想要做的是ActiveWorkbook替代使用或类似的东西.因为这将设置在代码的开头而不是中间.

Set wbOOR = Application.Workbooks("Open Order Report.xlsm")

use*_*963 23

你可能会追求 Set wbOOR = ThisWorkbook

只是为了澄清

ThisWorkbook 将始终引用代码所在的工作簿

ActiveWorkbook 将引用活动的工作簿

处理多个工作簿时要小心如何使用它.这实际上取决于你想要达到的最佳选择.

  • 我同意.我倾向于将所有需要的工作簿设置为变量,例如`Set wkbMain = ThisWorkbook或Workbooks("Main")``set wkbProcess = Workbooks("Process")`然后我根据需要使用它们.发现它是最安全的方式,因为`ActiveWorkbook`可能会毛茸茸并且在最不期望的时候将代码提升. (3认同)
  • 另外,ActiveWorkbook和ActiveSheet意味着您在某处使用了"Activate"或"Select",这也可能有问题:) (3认同)