2016-09-09 54 views
2

我無法聲明一個公共變量並讓我的工作表對象訪問它。例如,我不會改變字符串的集合(這是否意味着他們是靜態的?),一個模塊中定義:如何在模塊中聲明公共變量並訪問工作表對象中的變量?

Dim List1 As New Collection 

Public Sub Definitions() 
    With List1 
    .Add "Steelers" 
    .Add "Vikings" 
    .Add "Packers" 
    End With 
End Sub() 

後來,我想調用列表1中,從一個私人子一個工作表:

Private Sub CallThis() 
Call Definitions 
Dim Count as Variant 
For Each Count In List1 
    ... 
Next Count 
End Sub 

但是,我得到一個「變量未定義」的錯誤。我究竟做錯了什麼?

任何幫助表示讚賞!謝謝。

回答

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時,都會向集合中添加更多項目。

噢,你在公共子文件的最後一行有一個語法錯誤,我糾正了。

+0

感謝您的協助! – Plaxerous