将工作表对象设置为模块variables,出现错误

这就是我想要的:

  1. 在模块中,声明工作表对象的模块范围variables;
  2. ThisWorkbook对象中,设置工作簿打开时的variables。

每个代码:

模块1:

 Option Explicit Public ws As Worksheet Function func() dim rng as Range set rng = ws.Range("namedRange") 'rest of code ... end function 

的ThisWorkbook:

 Private Sub Workbook_Open() Set ws = Worksheets("Sales") End Sub 

当我打开工作簿时,第一次运行会引发一个错误:

对象“_Worksheet”的方法“范围”失败

之后的所有时间,错误是:

对象variables或未设置块variables

我也试过你的代码。 我几乎达成了没有问题的决定!

但经过一些审判“第二个错误”出现。 我的观察是:

当你添加任何额外的子或FN或重置您的VBA代码 ,该公共对象variables被破坏,你不能再访问它。

FYI: 参考链接