在Visual Basic(VBA)中传递对象引用

时间:2008-12-17 11:54:26

标签: excel vba excel-vba

如何将表单的TextBox对象传递给方法?

以下代码发出例外。

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

Private Sub TextBox1_Change()
    DoSmthWithTextBox Me.TextBox1
End Sub

DoSmthWithTextBox Me.TextBox1String而不是对象引用传递TextBox1时,会出现问题。

如何将TextBox对象传递给DoSmthWithTextBox方法?

1 个答案:

答案 0 :(得分:13)

重写Excel:

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

据我所知,这是因为Excel有一个形状的对象文本框,而userforms使用ActiveX控件文本框,所以你需要一个对MSForms库的显式引用。