每个下一个循环通过我的复选框的顺序是什么

时间:2016-01-12 18:46:55

标签: excel vba excel-vba for-loop foreach

我有大约20个矩形布局的复选框。我如何通过For Each循环知道我的代码通过它们循环的顺序是什么?

我已经确认它不是CheckBox1,CheckBox2,CheckBox3等的顺序。

1 个答案:

答案 0 :(得分:4)

对于工作表中列出的ActiveX复选框控件,<右键单击> ,Order命令设置在For ... Each循环中检索它们的顺序。需要注意的是,这些命令似乎是倒退的。

checkbox_order

  1. Bring to Front 会将形状对象放在For Each队列的尾端。
  2. Send to Back 会将形状对象带到For Each队列的前面。
  3. Bring Forward 会将形状对象拖回队列中的一个位置。
  4. Send Backward 会将形状对象推到队列中的一个位置。
  5. 此版本的VBA位于Shape.ZOrder method

    With Worksheets("Sheet1")
        .Shapes("CheckBox2").ZOrder msoBringForward  '<~~ send back one place in the queue
        .Shapes("CheckBox2").ZOrder msoSendToBack  '<~~ place at the beginning of the queue
    End With
    

    使用Shape.ZOrderPosition property确定当前位置。