带3个嵌套循环的Excel VBA

带3个嵌套循环的Excel VBA,excel,vba,Excel,Vba,我想给userform中的多个复选框一个来自单元格的标题。因为我不想写下每一个引用,所以我想使用循环。不幸的是,我不知道该怎么做 我每个工作日有8个复选框,总共23个工作日。命名就像whis WD1\u 1,WD1\u 2。。。WD1_8,WD2_1,WD2_2。。。WD2_8 WD1_1从选项卡“任务”单元格B2获取值。从那以后,它总是+1 我遇到的问题是,我不能一直循环到185,因为有三件事正在改变:计算任务编号和单元格编号,当达到WD1中的任务8时,计算WD+1,并从1到8重新启动任务编号

我想给userform中的多个复选框一个来自单元格的标题。因为我不想写下每一个引用,所以我想使用循环。不幸的是,我不知道该怎么做

我每个工作日有8个复选框,总共23个工作日。命名就像whis WD1\u 1,WD1\u 2。。。WD1_8,WD2_1,WD2_2。。。WD2_8

WD1_1从选项卡“任务”单元格B2获取值。从那以后,它总是+1

我遇到的问题是,我不能一直循环到185,因为有三件事正在改变:计算任务编号和单元格编号,当达到WD1中的任务8时,计算WD+1,并从1到8重新启动任务编号,同时继续计算单元格引用

我只对一个例子进行了说明,例如cell引用,但不是所有三个加在一起

这是我必须循环完成每个WD的任务,但我不知道如何计算工作日和单元格编号:

 For x = 1 To 23
 For i = 1 To 8
 For y = 2 To 185
        
      If Controls("WD" & x & "_" & i).Caption = "" Then
        Controls("WD" & x & "_" & i).Visible = False
        Else
        Controls("WD" & x & "_" & i).Visible = True
      End If
    
      If Sheets("Tasks").Range("I" & y) = 1 Then
        Controls("WD" & x & "_" & i).Value = True
        Else
        Controls("WD" & x & "_" & i).Value = False
      End If

 Next y, i, x

提前感谢您的帮助

找到了答案。我的错误是通过了第三个循环。删除第三个循环,然后使用线性函数遍历每一行是正确的方法:

Dim x作为整数
作为整数的Dim i
对于x=1到23
对于i=1到8
如果控制(“WD”&x&“&i”).Caption=“”,则
控件(“WD”&x&“&i)。可见=假
其他的
控件(“WD”&x&“&i)。可见=真
如果结束
如果工作表(“任务”)。范围(“I”和(x-1)*8+I+1)。值=1,则
控件(“WD”&x&“&i)。值=真
其他的
控件(“WD”&x&“&i)。值=False
如果结束

接下来i,x
我更进一步,我还可以同时循环WD和Task,但由于某些原因,循环单元格不起作用。我的公式只指定单元格引用的最后一个数字。