excel - VBA Excel - 通过 ListView 控件循环
问题描述
我有 4 个列表视图UserForm
。ListView
是否可以按照下面的代码检查哪个是活动的/选择的?
Private Sub CommandButton8_Click()
For i = 1 To 4
If me."ListView" & i) is selected Then
MsgBox me("ListView" & i ).Name
End If
Next i
End Sub
它不适用于ListView.SelectedItem
. 我真的不明白为什么?即使ListView
未选中,也MsgBox
弹出第一ListView
项为SelectedItem
.
For i = 1 To 4
If Me("ListView" & i).SelectedItem > 0 Then
MsgBox "listview" & i & " selected item is " & Me("ListView" & i).SelectedItem
End If
Next i
解决方案
首先,当数据加载到列表视图控件上时,会自动选择第一项。因此,为避免这种情况发生,请在添加数据后将第一项的 Selected 属性设置为 False。例如...
Me.ListView1.ListItems(1).Selected = False
或者
Me.Controls("ListView" & i).ListItems(1).Selected = False
然后可以使用下面的代码循环遍历每一个listview控件,然后for each one循环遍历每一项来检查选择了哪一个...
Private Sub CommandButton1_Click()
Dim i As Long
For i = 1 To 4
Dim lv As ListView
Set lv = Me.Controls("ListView" & i)
With lv
Dim j As Long
For j = 1 To .ListItems.Count
If .ListItems(j).Selected Then
MsgBox lv.Name & " - " & .ListItems(j).Text
Exit Sub 'optional
End If
Next j
End With
Next i
End Sub
如果您可以选择多个项目,并且想要显示每个项目的名称,请Exit Sub
从代码中删除。
推荐阅读
- javascript - 如何读取对象的特定属性
- mongodb - 基于字段的 MONGO 3.6 fitler 子文档
- bash - 为什么 * 将所有文件名放在参数向量中?
- ios - 将 DatePicker 与 UIPickerView 同步并使用 Label 显示从中选择的值
- scala - CrossValidator 调整 spark ML 在模型保存时参数“发现无关参数”失败
- php - PHP毕达哥拉斯检查它是否是正确的答案
- firebase - React-native firebase Signinwithemal 和 createuserwithemailandpassword
- react-native - alpha,beta,生产的不同反应本机应用程序图标?
- python - 为什么我的退出状态为 1?
- python - 用于非缺失值的 pandas groupby