一个模块不会看到公共variables
对不起,有什么不对了
标准模块:
Public ws1 As Worksheet Public rCopy As Range
Workbook_Open:
Set ws1 = Sheets("abc") Set rCopy = ws1.Range("A1")
第三模块:
ws1.Select ' Error rCopy.Select ' Error
请帮忙。
您发布的代码确实有效。
你可能会得到一个错误的一个原因是,如果你一直在debugging你的代码,并在某个时候出现错误,并停止excution,公共variables将不再被设置。 您只需再次运行Workbook_Open
子项(可以使用F5
从IDE运行它)
请注意,你应该从你最后一个问题的build议,并使用Set ws1 = Thisworkbook.Sheets("abc")
。 如果你不这样做,运行ws1
将被设置为另一个工作簿中的abc
的风险,因为如同写入它相当于Set ws1 = ActiveWorkbook.Sheets("abc")
如果第三个模块中的代码由于Workbook_Open 之后发生的某些事件而未被调用,则这两个variables仍未初始化。
那么私人会员和财产呢?
Option Explicit Private m_mySheet As Worksheet Private m_myRange As Range Public Property Get MySheet() As Worksheet If (m_mySheet Is Nothing) Then Set m_mySheet = ThisWorkbook.Worksheets("abc") End If Set MySheet = m_mySheet End Property Public Property Get MyRange() As Range If (m_myRange Is Nothing) Then Set m_myRange = MySheet.Range("A1") End If Set MyRange = m_myRange End Property Option Explicit Sub test() Debug.Print MyRange.Address End Sub