2017-02-09 57 views
0

我很難過我嘗試了以下方法和我的生活我無法弄清楚這一點....需要在excel vba表單上使用列表框上的一個命令按鈕。Excel選擇列表框中的所有條目Vba

Iniatilizing負載形式.....它加載罰款

Sub UserForm_Initialize() 
UserForm1.LbNumbers.RowSource = "Sheet2!A1:A3"End Sub 

項目在列表框中顯示精細

我有列表框下一個命令按鈕,選擇所有的代碼

Sub CbSelectall_Click() 
    For i = 0 To LbNumbers.ListCount - 1 
     LbNumbers.Selected(i) = True 
    Next i 
End Sub 

如果我點擊按鈕,它會跳到最後一行,但它不會選擇列表框中的所有數字。有人可以告訴我如何糾正它,以選擇列表框中的所有數字。謝謝

+0

在您的列表框中,有一個'MultiSelect'屬性。我懷疑它仍然是'0 - fmMultiSelectSingle'的默認值。嘗試將該屬性更改爲「2 - fmMultiSelectExtended」 – tigeravatar

回答

0
 
Private Sub lbTraderId_Change() 
    If ResetListBox(lbTraderId) Then 
     Exit Sub 
    ElseIf lbTraderId.Selected(0) Then 
     For i = 1 To lbTraderId.ListCount - 1 
      If lbTraderId.Selected(i) = False Then 
       lbTraderId.Selected(i) = True 
      End If 
     Next i 
    ElseIf lbTraderId.Selected(0) = False Then 
     For i = 1 To lbTraderId.ListCount - 1 
      If lbTraderId.Selected(i) = True Then 
       lbTraderId.Selected(i) = False 
      End If 
     Next i 
    End If 
End Sub 

Private Function ResetListBox(lbx As MSForms.ListBox) As Boolean 
    Dim x As Long 
    Static bExit As Boolean 
    If Not bExit Then 
     x = lbx.ListIndex 
      If x >= 0 And Not lbx Is Me.lbTraderId Then 
       bExit = True 
       lbx.Selected(x) = Not lbx.Selected(x) 
       bExit = False 
       ResetListBox = True 
      End If 
    End If 
End Function 
+0

呃....什麼?在回答這個問題時 - 你似乎忘記了真正回答這個問題。 – Tom

+0

對不起,我的網絡速度很慢 –

+0

您還應該解釋爲什麼您的答案解決了OP的原始問題 - 這有助於確保答案對他們以及面臨同樣問題的其他人有用。閱讀這篇關於[回答]的文章,瞭解一些提示。 – Tom

相關問題