excel - 如何在 VBA 中将所有项目选择到列表框(多选)中
问题描述
我想从列表框中选择多个数据
下面的代码适用于单选:0 -fmMultiSelectSingle
Private Sub ListBox1_Click()
Dim Msg As String
Dim i As Integer
Msg = "You selected:" & vbNewLine
For i = 1 To ListBox1.ListCount
If ListBox1.Selected(i) Then
Msg = Msg & ListBox1.List(i) & vbNewLine
End If
Next i
MsgBox Msg
ListBox1.Selected(0) = False
End Sub
消息框向我显示所选项目,但如果我将 MultiSelect 选项切换为:
1 - fmMultiSelectMulti
或者2 - fmMultiSelectExtended
,前面的代码不起作用:消息框不显示任何内容。
难道我做错了什么?
解决方案
该事件应该是_Change
而不是_Click
,只要它没有进入它,在fmMultiSelectExtended
由于某种奇怪的原因的情况下。或者尝试 VBE 中的其他内置事件,可从下拉列表中获得:
Private Sub ListBox1_Change()
Dim myMsg As String
Dim i As Long
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
myMsg = myMsg & ListBox1.List(i)
End If
Next i
Debug.Print myMsg
End Sub
只需考虑一个事实,如果您一个接一个地选择 3 个值,则每次只有 1 个选定值。因此,您将在即时窗口中获得 3 组不同的数据。像这样:
为此ListBox
:
推荐阅读
- javascript - 使用 MAMP 时,Google Maps JS API 在 localhost 中不起作用
- r - ggplot2:沿着中心轴(即x = 0,y = 0)而不是绘图区域的边界在四象限图上定位刻度线
- javascript - 输入自动填充插入符号丢失
- c++ - 模板乘法函数
- javascript - 将外圈的导航与内圈的选定导航对齐
- docker - 在fabric first-network示例中,热修复错误:“传输:拨号时出错:拨号tcp:lookup peer0.org1.example.com:没有这样的主机”
- powerbi - Power BI - 我可以在导入期间在 Power BI 桌面上运行多个查询吗?这是一个糟糕的设计吗?
- swift - 根据选择的collectionview单元格显示不同的tableview数据
- javascript - Vue js如何调用方法wen prop变化
- python - builtins.TypeError:参数“img”的预期 cv::UMat