Excel,为下一个循环收集的复选框值

时间:2017-02-21 18:56:48

标签: arrays excel vba checkbox

我正在开发一个excel文档,最终会有超过90个复选框。用户将能够选择90中的任何一个或全部,这将仅使用简单的If ... then函数中的那些值来在输出文档中打印结果。

最初我的代码用于i = 1到8,然后我手动编码了复选框现在将保存的值。即。

Dim Sec(1 to 8) as string
For i = 1 to 8
Sec(1) = "5001"
Sec(2) = "5002"

等等,直到我需要的值被添加。这并不困难,我只是将文档定制到任何需要它的部门。然而,正如所有从小事做起的事情一样,我的任务是创建一个网站范围的文档,其中包含可以临时选择的所有值。我发现自己迷失了。

我目前正在使用

 For Each ctl in Sheets("Sheet1").Controls
   If Typename(ctl) = "Checkbox" then
     If ctl.value = True then

循环浏览所有复选框并查找已选中的复选框,但我如何获取复选框1的值(假设为5001)并使秒(#)与我的其余部分一致码?

这是一个动态数组的情况,还是我最好只是将值发送到工作表上的某个列,然后从单元格区域创建一个非空白的数组?

更大的代码片段,因此您可以获得所有内容都落在哪里。请忽略Attachmate的内容,如果满足某些条件,我将使用Getstring将信息提取到单独的文档中。

Dim Sec(1 To 8) As String


Sec(1) = "6601"
Sec(2) = "6602"

For i = 1 To 2

     Sess0.Screen.Moveto 16, 19
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
     Sess0.Screen.SendKeys ("W")
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
     Sess0.Screen.Moveto 18, 28
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys (Sec(i))
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.Moveto 17, 29
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys ("19044")
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.Moveto 19, 60
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    Sess0.Screen.SendKeys ("P")
     Sess0.Screen.WaitHostQuiet (g_HostSettleTime)


    Sess0.Screen.SendKeys ("<enter>")

Do
'If.....then....else...
loop until errorcode = "End"    
Next i

非常感谢任何帮助。我一定是想学习,但据我所知,我似乎已经陷入了困境,我不确定在哪里可以看。

0 个答案:

没有答案