Передача ссылки на объект в Visual Basic (VBA) - PullRequest
5 голосов
/ 17 декабря 2008

Как передать объект TextBox формы методу?

Следующий код выдает исключение.

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

Private Sub TextBox1_Change()
    DoSmthWithTextBox Me.TextBox1
End Sub

Проблема возникает, когда DoSmthWithTextBox Me.TextBox1 передает String из TextBox1 вместо ссылки на объект.

Как передать объект TextBox методу DoSmthWithTextBox?

1 Ответ

13 голосов
/ 17 декабря 2008

Переписать для Excel:

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

Насколько я знаю, это связано с тем, что в Excel есть текстовое поле объекта, представляющее собой форму, а пользовательские формы используют текстовое поле элемента управления ActiveX, поэтому вам нужна явная ссылка на библиотеку MSForms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...