Excel VBA将多个复选框的结果合并到单个工作表单元格中

时间:2017-06-02 04:11:21

标签: vba excel-vba excel

我有一个包含20个复选框的Userform框架,每个复选框代表一个不同颜色的衬衫。

当用户进行复选框选择时,我希望结果(标题,而不是真/假)最终在活动行的单个单元格(第8列)中,以逗号分隔。< / p>

我是VBA编程和动态学习的新手 - 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

修改1:已移除let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), Int64(Double(NSEC_PER_SEC) * 0.5)) dispatch_after(time, dispatch_get_main_queue()) { //random function } 上的续行SELECT instance_id , SUM(CASE WHEN type= 'used' THEN value ELSE 0 END)/SUM(CASE WHEN type= 'total' THEN value ELSE 0 END) FROM t GROUP BY instance_id

创建一个子例程来检查所有_并将数据传递给选定的单元格。
尝试这样的事情:

If statement

然后,您需要做的就是在所有Checkboxes事件中调用此子例程。

Private Sub GetSelection()

    Dim c As MSForms.Control
    Dim cbk As MSForms.CheckBox
    Dim sel As String


    For Each c In Me.Controls '/* Iterate all controls */
        If TypeOf c Is MSForms.CheckBox Then '/* check if it is a checkbox */
            Set cbk = c '/* Set as Checkbox to get the caption property */
            If cbk Then '/* Check value, get caption if true */
                If sel = "" Then 
                    sel = cbk.Caption 
                Else 
                    sel = sel & "," & cbk.Caption
                End If
            End If
        End If
    Next

    '/* Transfer currently selected values in desired cell */
    Sheet1.Range("H" & ActiveCell.Row).Value2 = sel '/* Used H for column 8 */

End Sub