VBA 使用 for 循环隐藏多个文本框

VBA hiding multiple textboxes using for loop

我在 excel 中有一个 VBA 表单,其中包含多个文本框,称为 tboTEXT1、tboTEXT2,等等到 tboTEXT20。我还有一个文本框 tboNumber,当我输入 1 到 20 之间的数字时,应该可以看到该数量的 tboTEXT 文本框。所以我使用 tboNumber_Change()。在首先输入的每个数字上,应将 tboTEXT 文本框设置为不可见,然后根据在 tboNumber 中输入的数字设置为可见。 问题:如果 20 次 tboTEXTi.visible = false,我想使用一个 For 循环遍历 i = 1 到 20 的 tboTEXTi 文本框。 到目前为止,无论我使用什么,我总是会出错,比如 "object required"...

Private Sub tboNumber_Change()
For i = 1 To 20
varTEXT = "formFORM.tboTEXT" & i
varTEXT.Visible = False
Next i

您需要更改此行:

VarTEXT = "formFORM.tboTEXT" & i

与:

Set VarTEXT = formFORM.Controls("tboTEXT" & i)

这样您将正确引用文本框对象。否则你的 varTEXT 将只是一个字符串。