我无法声明公共变量并让我的工作表对象访问它。例如,我有一个不会改变的字符串集合(这是否意味着它们是静态的?),在模块中定义:
Dim List1 As New Collection
Public Sub Definitions()
With List1
.Add "Steelers"
.Add "Vikings"
.Add "Packers"
End With
End Sub()
之后,我想从工作表中调用私有子中的List1:
Private Sub CallThis()
Call Definitions
Dim Count as Variant
For Each Count In List1
...
Next Count
End Sub
但是,我收到“未定义变量”错误。我做错了什么?
任何帮助表示赞赏!感谢。
答案 0 :(得分:1)
List1
未在CallThis
子例程的范围内定义。使用Option Explicit
提醒您出现此类问题。这应该放在每个模块中,并要求声明所有变量。
Option Explicit
Public List1 As Collection
Public Sub Definitions()
Set List1 = New Collection
With List1
.Add "Steelers"
.Add "Vikings"
.Add "Packers"
End With
End Sub
为了使您的变量成为“公开”,您需要使用Public
关键字而不是Dim
来声明它。
请注意,我每次都将List1设置为新的集合。否则,每次调用Definitions时,都会向集合中添加更多项目。
哦,你在公共子的最后一行有一个语法错误,我纠正了。