2011-11-01 38 views
0

我有一個窗體UserForm1有兩個命令按鈕命令1和命令2.變量var = 1時按下command1和變量= 2如果命令2被按下。 Var是UserForm1中的全局變量。 EXPDATE和textRecDate是兩個文本框在UserForm1變量範圍從窗體到類模塊VBA

我有一個類模塊clsMod和我試圖做這樣的事情

If UserForm1.var= 1 Then 
    UserForm1.expDate.Text = SelectedDate 
If UserForm1.var= 2 Then 
    UserForm1.textRecDate.Text = SelectedDate 

我想VAR的範圍擴展到類模塊。有沒有辦法做到這一點?

感謝

+0

var聲明如何?最好的方法是將其創建爲表單上的一個屬性。如果您想使解決方案健全,您還應該爲expDate和recDate添加屬性。 –

+0

Var在UserForm1中聲明爲全局聲明,整數爲 – Ank

+0

是否聲明爲Public? –

回答

1

你不是真的想「擴展」的範圍 - 要限制範圍到窗體級別,然後用Public方法來訪問/控制形式。

如 - 在UserForm1 ...

Private Var As Integer 

Public Function GetVar() As Integer 
    GetVar = Var 
End Function 

Public Sub SetTextRecDate(d as Date) 
    textRecDate.Text = SelectedDate 
End Sub 

而且在clsMod ..

If UserForm1.GetVar = 2 Then 
    UserForm1.SetTextRecDate(SelectedDate) 
    'The line above may actually want to be... 
    'UserForm1.SetTextRecDate SelectedDate 
    'VBA is strange about parenthesised arguments 
Endif 

等等等等

哦,如果命名不只是爲了演示/例子的目的,請不要習慣於打電話給你的按鈕Command1Command2和你的變量Var:D ...