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

Jox*_*Jox 5 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
Run Code Online (Sandbox Code Playgroud)

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

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

Fio*_*ala 13

重写Excel:

Private Sub DoSmthWithTextBox(txtBox As MSForms.TextBox)
    txtBox.BackColor = vbRed
End Sub
Run Code Online (Sandbox Code Playgroud)

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