我正在尝试构建值
If UserForm1.p1OptionButton.Value = True
p1OptionButton中的1是For Next循环计数器的值,但我遇到了错误,但我尝试构造它。如果我使用
Dim iPart As Integer
For iPart = 1 to 6
If "UserForm1.p" & iPart & "OptionButton.Value" = True
.... blah blah blah rest of the code
Next iPart
我收到此错误:
运行时错误13类型不匹配。
如果我离开“从字符串的其他部分出来,它也不起作用。
感谢您的帮助。
答案 0 :(得分:1)
例如,假设您的表单上有6个OptionButton
和CommandButton
,那么您可以根据下面的代码示例迭代选项。如果您将变量设置为OptionButton
,然后将其中一个表单Controls
分配给该变量,则可以访问其属性,例如<{1}}和Name
等非常容易。
Value
答案 1 :(得分:0)
自从我做了任何VBA以来已经有很长一段时间了,所以可能有点生气:)
您得到的错误是因为您正在将String与布尔值进行比较,因此类型不匹配
您可以尝试使用以下代码动态访问控件:
Forms("UserForm1").Controls("p" & iPart & "OptionButton").Value = True
答案 2 :(得分:-1)
我相信您正在尝试将字符串与布尔值进行比较,因此它无法以您希望的方式工作。如果你希望它更好地工作,你可以做类似的事情只是简单地浏览每个可能的值(IE UserForm1.p1OptionButton.Value,UserForm1.p2OptionButton.Value等)