【问题标题】:VBA: Displaying Grid of Checkbox on VBA UserForm FrameVBA:在 VBA 用户窗体框架上显示复选框的网格
【发布时间】:2015-01-17 22:33:49
【问题描述】:

我坚持创建复选框,例如复选框网格。基本上我有一个要创建的工作表列表,方法是,当我选中复选框时,应该在活动工作簿中创建相应的工作表。我已经完成了它,但是我坚持创建复选框网格,因为我想在我的表单中利用空置空间。

例如,

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

提前致谢。

【问题讨论】:

    标签: vba excel checkbox


    【解决方案1】:
    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
    

    【讨论】:

    • 感谢 Tim 的立即回复,添加了您的代码并且它有效。但是是否有一些更改取代了您正在使用的 MOD 功能
    • 感谢蒂姆的有用回复
    【解决方案2】:
    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 给出错误 需要表达式

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 2023-03-10
      • 1970-01-01
      • 2018-08-29
      • 2017-04-03
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多