【问题标题】:How do I declare a public variable in a Module and access the variable in my worksheet objects?如何在模块中声明公共变量并访问工作表对象中的变量?
【发布时间】:2016-09-09 17:12:48
【问题描述】:

我在声明公共变量和让我的工作表对象访问它时遇到问题。例如,我有一个不会改变的字符串集合(这是否意味着它们是静态的?),在模块中定义:

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

但是,我收到“未定义变量”错误。我做错了什么?

感谢任何帮助!谢谢。

【问题讨论】:

    标签: excel vba


    【解决方案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 设置为一个新集合。否则,每次调用定义时,都会向集合中添加更多项。

    哦,你的公共子代码的最后一行有语法错误,我更正了。

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 2018-02-02
    • 2015-03-31
    • 2023-03-27
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2015-03-27
    • 2014-12-03
    相关资源
    最近更新 更多