访问VBA for循环使用i引用变量

时间:2017-11-23 11:52:21

标签: vba ms-access for-loop

我在Access 2016中有一个宏,使用for循环来检查复选框的值。我想将值提交到表中。 我不希望标准复选框值为true(-1)我想要检查“滚动”计数的值。

e.g。 CB1 CB2 CB3 CB4

如果仅检查CB1和CB4,那么我想向表中提交CB1的值1和CB4的值。

我的循环是:

For i = 1 To 8
If Me.Controls("CP" & i) = -1 Then
"CP" & i = I    'ISSUE IS HERE
Debug.Print Me.Controls("CP" & i)
End If
Next i

如何参考变量值? CP& I = CP1,CP2,CP3,CP4等...

2 个答案:

答案 0 :(得分:0)

变量名,是静态的,你不能使用语法“CP”&我要访问一个变量。你必须使用数组。

Dim arrCP(8)
For i=Me.controls("CP" & i)=-1 then
arrCP(i)=i
debug.print arrCP(i)
end if
next i

答案 1 :(得分:0)

也许是这样的,使用countTrue来确定您想要显示的数字。

Dim countTrue As Long: countTrue = 0
For i = 1 To 8
    If Me.Controls("CP" & i) = -1 Then
        countTrue = countTrue + 1
        Me.Controls("CP" & i) = countTrue
        Debug.Print Me.Controls("CP" & i)
    End If
Next i