1
是否可以在VBA中導入名稱空間?我正在寫Word宏,我想把所有的功能放入模塊或類中。但是一旦我這樣做了,我就會發現我無法輕鬆地訪問VBA表單中的控件。我必須首先包含表單的名稱,然後訪問該表單中的控件。我不能只是去VBA - 導入命名空間?
TextBox1.Caption
我必須去
Form1.TextBox1.Caption
有沒有辦法來解決這個問題?
是否可以在VBA中導入名稱空間?我正在寫Word宏,我想把所有的功能放入模塊或類中。但是一旦我這樣做了,我就會發現我無法輕鬆地訪問VBA表單中的控件。我必須首先包含表單的名稱,然後訪問該表單中的控件。我不能只是去VBA - 導入命名空間?
TextBox1.Caption
我必須去
Form1.TextBox1.Caption
有沒有辦法來解決這個問題?
你不應該如此緊密地耦合你的類/模塊。工作模塊不需要知道Form1
類,因爲它不能在另一個項目中單獨使用。
而是,您可能希望將幫助類中的函數傳遞給參數,並在其上執行工作,然後返回結果(如果需要)。作爲一個完全無用的,簡單的例子:
Public Sub SetLabelText(ByVal lbl As Label, ByVal caption As String)
lbl.Caption = caption
End Sub
你會說它是從表單類中,像這樣:
MyHelpers.SetLabelText(Label1, "New Label Caption")
這樣的話,你可以在輔助類使用功能的任何形式的。
但是,至於你的實際問題,沒有。 VBA沒有任何「命名空間」的概念。你可以做的最好的是With
聲明,但是如上所述,經常這樣做更可能是設計缺陷的表現。