Excel VBA实现双击活动单元格弹出复选框录入窗体,勾选录入内容的功能

通过Excel VBA实现如下功能:
1、在sheet1中,输入一列项目,这列内容会作为复选框的选择项,如果内容有增加,复选框会随着自动增加;
2、双击活动单元格会弹出窗体,窗体内是复选框,复选框对应的内容就是sheet1指定列中的内容;
3、勾选相关内容后,会以所选的各个选项的文字,中间用“;”隔开,插入到活动单元格内。
如图所示。

请大神帮忙编写个VBA代码,多谢啦!

自动创建窗体和各种控件,并自动填写代码,待完成指定任务后再自动删除窗体,这个有点难度了。看下面动画应该就是解决了你的提问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-02
要进行窗体设计,添加按钮和列表框控件,还要用到工作表事件,是挺麻烦。可以联系3271614433qq。追问

窗体设计,我大概已经知道了,点击按钮录入的代码也已经在论坛中找到了,现在就是列表框控件中,实现复选框链接到一列数据上,这个没研究出来呢还。。。

追答

Private Sub CommandButton1_Click()
For i = 0 To Me.Lst.ListCount - 1
If Me.Lst.Selected(i) Then
Sr = Sr & Me.Lst.List(i) & ";" & Chr(10)
End If
Next
Sr = Left(Sr, Len(Sr) - 2)
ActiveCell = Sr
Unload UserForm1
End Sub
这是单击录入按钮时运行的代码
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 2 Then
UserForm1.Show
For Each rg In Sheets("数据源").Range("a2:" & "a" & Sheets("数据源").Range("a1").End(xlDown).Row)

UserForm1.Lst.AddItem rg.Value
Next
end If
End Sub
这是双击单元格时运行的代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
UserForm1.Lst.Clear
For Each rg In Sheets("数据源").Range("a2:" & "a" & Sheets("数据源").Range("a1").End(xlDown).Row)
UserForm1.Lst.AddItem rg.Value
Next
End If
End Sub
这是数据源表添加项目或者删除项目时运行的代码。

本回答被提问者采纳
第2个回答  2018-07-03

数据有效性的多项选择

多上网搜索,张嘴就问一般效果很差。

追问

谢谢您的建议,其实已经上网搜过了。。。只不过代码实现的有错误,才发上来请教一下。。。

追答

上面链接里有附件,你下载了先研究。

第3个回答  2018-08-01
这个涉及到窗体事件的调用,你是哪里不会啊?
第4个回答  2018-07-31
我会写,来来来搞起来!
相似回答