在Visual Basic(VBA)中传递对象引用
如何将表单的TextBox
对象传递给方法?
以下代码发出exception。
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
方法?
重写Excel:
Private Sub DoSmthWithTextBox(txtBox As MSForms.TextBox) txtBox.BackColor = vbRed End Sub
据我所知,这是因为Excel有一个形状的对象文本框,而用户forms使用ActiveX控件的文本框,所以你需要一个明确的引用到MSForms库。