我设置了一个userform,用于检查是否选中了复选框控件,如果是,则将标签的值添加到变量中。每个控件的标签都有唯一的编号。
Dim ctl As Control
Dim sum As Long
For Each ctl In Userform1.Controls
If ctl.ControlType = acCheckBox Then
If ctl.Value = True Then sum = sum + ctl.Tag
End If
Next
Me.TextBox7 = sum
但是,当代码到达每个语句时,会抛出类型不匹配错误,并且ctl = Nothing。我添加了一个中断,看看是否在第一次迭代时发生了这个错误,而且似乎就是这种情况。思考?这应该是一个简单的小工具来帮助另一个项目...
答案 0 :(得分:1)
尝试此代码
Dim ctl As CheckBox
答案 1 :(得分:0)
我在这里猜测,但是If ctl.Value = True Then sum = sum + ctl.Tag
上的错误是什么?您可能要查找的值为-1
而不是True
,因为这是复选框在Access-VBA中评估的方式。
修改强>
哎呀,忽略它。我想我发现了问题,请将For Each ctl In Userform1.Controls
更改为For Each ctl In Forms(Userform1).Controls