![](/img/trans.png)
[英]Excel Vba: Looping through userform controls to count and identify empty textboxes
[英]VBA Excel - looping through ListView Controls
我在UserForm
上有 4 個 ListViews 。 是否可以按照下面的代碼檢查哪個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循環遍歷每一項來檢查選擇了哪一個...
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.