2008-12-17 60 views
5

如何將表單的TextBox對象傳遞給方法?在Visual Basic(VBA)中傳遞對象引用

以下代碼發出異常。

Private Sub DoSmthWithTextBox(ByRef txtBox as TextBox) 
    txtBox.BackColor = vbRed 
End Sub 

Private Sub TextBox1_Change() 
    DoSmthWithTextBox Me.TextBox1 
End Sub 

問題時DoSmthWithTextBox Me.TextBox1通過從TextBox1代替對象引用String出現。

如何將TextBox對象傳遞給DoSmthWithTextBox方法?

回答

12

重寫爲Excel:

Private Sub DoSmthWithTextBox(txtBox As MSForms.TextBox) 
    txtBox.BackColor = vbRed 
End Sub 

據我所知,這是因爲Excel有一個對象文本框是一個形狀,而用戶窗體使用ActiveX控件的文本框,所以你需要一個明確的參照MSForms庫。

+0

+1瞭解差異。 ;-)你能寫一個簡短的解釋嗎? – Tomalak 2008-12-17 12:56:39