上下文:我在用户表单中有10个文本框(ID1到ID10)。 userform还有一个清除按钮,允许用户清除以前在文本框中输入的所有值。为此,我在清除按钮中插入了下面提到的命令。
我有多个命令具有相同的命名法,但数字随每个文本框而变化。我希望输入一个命令来改变数字并执行所有命令。
下面给出的简单示例:我希望只输入一个命令而不是下面的命令:
Private Sub btnClear_Click()
'Empty ID1
ID1.Value = ""
'Empty ID2
ID2.Value = ""
'Empty ID3
ID3.Value = ""
。 。 。等等
'Empty ID10
ID10.Value = ""
End Sub
我知道有一个解决方案,但是因为我是新手在谷歌上找不到正确的关键词。对不起,如果已经存在。任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
你的意思是这样吗?
For i=1 to 4
str="ID" & i & ".Value = ''"
Evaluate(str)
Next
答案 1 :(得分:0)
如果这些是UserForm上的TextBoxes,您将能够从UserForm的代码模块中的宏执行以下操作:
Private Sub btnClear_Click()
Dim i As Long
For i = 1 To 10
Me.Controls("ID" & i).Value = ""
Next
End Sub
无法动态生成变量和/或对象名称,但由于Controls
集合可以通过控件的“名称”进行索引,因此它提供了另一种获取对象的方法。 / p>
添加注释中提到的“选项框”(OptionButtons?`CheckBoxes?)的代码,并将TextBox名称更改为以“C”结尾:
Private Sub btnClear_Click()
Dim i As Long
For i = 1 To 10
Me.Controls("ID" & i & "C").Value = ""
Me.Controls("OB" & i).Value = False
Next
End Sub