【问题标题】:Excel VBA - Save checked checkboxes to cellsExcel VBA - 将选中的复选框保存到单元格
【发布时间】:2021-01-05 18:15:10
【问题描述】:

我有一个带有多个复选框的用户表单。我想将勾选的复选框保存在同一列的不同连续行中。

例如,如果我选择了 5 个复选框,那么我想将它们保存在单元格 (4,9)、单元格 (5,9) 等中。我的代码几乎完成了,但是我在编写一段时间时遇到了麻烦循环,使其从 cell(4,9) 到 cell(5,9) 等等。

这是我的代码:

Private Sub seg_b_next2_Click()

Dim indProdWs As Worksheet
Set indProdWs = tWb.Worksheets("INDICATION-PRODUCT")

Dim ctl As Control

For Each ctl In Me.Controls
    If TypeName(ctl) = "CheckBox" Then
        If ctl.Value = True Then
            i = 0
            While whatever_happens
            indProdWs.Range(4 + i, 9) = ctl.Caption
            i = i + 1
            Wend
        End If
    End If
Next ctl

End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    请试试这个方法:

    Private Sub seg_b_next2_Click()
     Dim indProdWs As Worksheet, ctl As Control, i As Long
     
     Set indProdWs = Twb.Worksheets("INDICATION-PRODUCT")
    
     i = 4
     For Each ctl In Me.Controls
        If TypeName(ctl) = "CheckBox" Then
            If ctl.Value = True Then
                indProdWs.Range(i, 9).Value = ctl.Caption: i = i + 1
            End If
        End If
     Next ctl
    End Sub
    

    【讨论】:

    • 你是个天才!你能解释一下这部分 ctl.Caption: i = i + 1 的工作原理吗?
    • @soraia635:很简单:当第一个标题被复制到单元格时,i 变量值增加了 1。下一次它将是 5、6 等等......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2013-10-23
    相关资源
    最近更新 更多