2008-12-17 39 views
5

Làm cách nào để chuyển đối tượng TextBox của biểu mẫu vào phương thức?Tham chiếu truyền đối tượng trong Visual Basic (VBA)

Mã sau đây phát hành ngoại lệ.

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

Private Sub TextBox1_Change() 
    DoSmthWithTextBox Me.TextBox1 
End Sub 

Vấn đề xuất hiện khi DoSmthWithTextBox Me.TextBox1 vượt qua String từ TextBox1 thay vì tham chiếu đối tượng.

Làm cách nào để chuyển đối tượng TextBox đến phương thức DoSmthWithTextBox?

Trả lời

12

Rewrite cho Excel:

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

Theo như tôi biết, điều này là bởi vì Excel có một textbox đối tượng đó là một hình dạng, trong khi UserForms sử dụng hộp điều khiển ActiveX, vì vậy bạn cần một tham chiếu rõ ràng để các Thư viện MSForms.

+0

+1 để biết sự khác biệt. ;-) Bạn có thể viết một lời giải thích ngắn? – Tomalak

+0

CÓ !!!! Upvote từ tôi ;-) Điều này phù hợp với tôi ... – Jox

Các vấn đề liên quan