从VBA表格插入checkbox值到Excel电子表格中
我正在尝试将选中的checkbox列表插入到电子表格中,在此用例中,用户最多可以select15个项目。 这将被插入到我在下面定义的某个单元格中。
我有一个checkbox,具有以下名称/值:
Name Value ========== ===== chk_week1 1 chk_week2 2 ... ... ... ... chk_week15 15
例如,如果用户selectchk_week1,chk_week2,chk_week4和chk_week5,那么它应该作为1,2,4,5插入到单元格中。
我已经包含了一个图像如何更好地展示它:
每个checkbox都有上表中列出的名称和值。 这是我目前使用的代码:
Private Sub btnSubmit_Click() Dim ws As Worksheet Dim rng1 As Range Set ws = Worksheets("main") ' Copy the data to the database ' Get last empty cell in column A Set rng1 = ws.Cells(Rows.Count, "a").End(xlUp) ' Having difficulty adding the code here ' rng1.Offset(1, 7) = weeks End Sub
提前致谢。
这个函数会返回你想要放入单元格的string。
Function CheckBoxValues() As String For x = 1 To 15 If Sheets("Main").Shapes("chk_week" & x).OLEFormat.Object.Object.Value Then CheckBoxValues = CheckBoxValues & x & "," End If Next if Len(CheckBoxValue <> 0) then CheckBoxValues = Left(CheckBoxValues, Len(CheckBoxValues) - 1) end if End Function
或者对于非循环方法,请检查Francis Dean的解决scheme。
你可以使用一个函数来通过你的checkbox并按照你想要的格式返回一个string(添加其余的checkbox!)
Private Sub btnSubmit_Click() 昏暗的ws作为工作表 昏暗rng1作为范围 设置ws =工作表(“主”) '将数据复制到数据库 '获取A列中的最后一个空单元格 设置rng1 = ws.Cells(Rows.Count,“a”)。End(xlUp) '在这里添加代码很困难 rng1.Offset(1,7)= GetWeeks 结束小组 私人函数GetWeeks()作为string 作为string昏暗星期 '如果条件为真,则将值添加到string中 如果chk_week1.Value = True那么周=周和“1” 如果chk_week2.Value = True那么周=周和“2” 如果chk_week3.Value = True那么星期=星期和“2” ” ... 如果chk_week14.Value = True那么周=周和“14” 如果chk_week15.Value = True那么周=星期和“15” '删除尾部的逗号 如果右(周,1)=“,”则周=左(周,伦(周) - 1) GetWeeks =星期 结束function