VBA:在VBA UserForm框架上显示复选框的网格

时间:2014-11-20 06:34:47

标签: excel vba excel-vba checkbox

我很难创建像复选框一样的复选框。基本上我有一个要创建的工作表列表,方法是,当我选中复选框时,应在Active Workbook中创建相应的工作表。我已经完成了它,但我仍然坚持创建复选框网格,因为我想在我的表单中使用空置空间。

例如,

Checkbox1             Checkbox2  
Checkbox3             Checkbox4 

以下是我编码的代码。

For Each varItem In InfantDataQuerySheets
    checkboxInc = checkboxInc + 1
    Set chkbox = SelectDataQuerySheet.Controls.Add("Forms.CheckBox.1", "CheckBox" &      checkboxInc, True)
    With chkbox
        .Left = 10
        .Top = (checkboxInc - 1) * (chkbox.Height + 3)
        .Caption = varItem
    End With
Next varItem

提前致谢。

2 个答案:

答案 0 :(得分:0)

For Each varItem In InfantDataQuerySheets
    checkboxInc = checkboxInc + 1
    Set chkbox = SelectDataQuerySheet.Controls.Add( _
                  "Forms.CheckBox.1", "CheckBox" &  checkboxInc, True)

    With chkbox
        .Left = IIf(checkboxInc Mod 2 = 1, 10, 40) 'edited
        .Top = Application.Floor((checkboxInc - 1)/2, 1) * (chkbox.Height + 3)
        .Caption = varItem
    End With

Next varItem

答案 1 :(得分:0)

For Each varItem In InfantDataQuerySheets
    checkboxInc = checkboxInc + 1
    Set chkbox = SelectDataQuerySheet.Controls.Add( _
                  "Forms.CheckBox.1", "CheckBox" &  checkboxInc, True)

    With chkbox
        .Left = IIf((checkboxInc - (2 * (checkboxInc \ 2))) = 1, 10, 40)
        .Top = Application.Floor((checkboxInc - 1)/2, 1) * (chkbox.Height + 3)
        .Caption = varItem
    End With

Next varItem

添加Mod公式,因为IIF给出错误需要表达