将工作表对象设置为模块变量,获取错误

时间:2014-09-26 18:02:10

标签: excel vba excel-vba

这就是我的尝试:

  1. 在模块中,声明工作表对象的模块范围变量;
  2. ThisWorkbook对象中,设置工作簿打开时的变量。
  3. 每个代码:

    第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'失败

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

      

    对象变量或未设置块变量

1 个答案:

答案 0 :(得分:1)

我也试过你的代码。而我几乎已经做出了没有问题的决定!

但经过一些试验后,第二个错误是'出现了。我的观察是:

添加任何额外的子或fn或重置您的vba代码 时,该公共对象变量会被销毁 而且你再也无法访问它了。

仅供参考:Reference link