vba-列表框和組合框


Private Sub ComboBox1_Change()
If Me.ComboBox1.ListIndex <> -1 Then
    Me.TextBox1.Value = Me.ComboBox1.Value  '(BoundColumn )
    Me.TextBox2.Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1) '這里表示 的是當前選中行的第二列,因為列是從0 開始的
End If
End Sub

Private Sub ComboBox1_Enter()
Me.ComboBox1.DropDown '進入的時候,自動顯示下拉列表
Me.ComboBox1.ListRows = 2 '設置顯示的行數,超過的要拉下拉列表顯示
End Sub

Private Sub ComboBox2_Change()
'第一種,直接添加
Me.ComboBox2.AddItem "a"
Me.ComboBox2.AddItem "b"
Me.ComboBox2.AddItem "c"

'第二種 使用常量數組
Me.ComboBox2.List = Array("A", "B")

'第三種 使用vba數組添加
Dim arr(1 To 5)
arr = Range("g2:g4")
Me.ComboBox2.List = arr

'第四種 直接和單元格鏈接
Me.ComboBox2.RowSource = "sheet1!g2:g4"

'刪除
Me.ComboBox2.RemoveItem 1 '刪除指定行
Me.ComboBox2.RemoveItem Me.ComboBox2.ListIndex '刪除當前行

'提取多列內容
'list(行,列),行,列都是從0開始的

'是否可以輸入列表以外的數據
Me.ComboBox2.MatchRequired = True '表示 必須 輸入組合框中的內容
End Sub

Private Sub CommandButton1_Click()
Dim arr
arr = Range("g2:h6")
Me.ComboBox1.List = arr
Me.ComboBox1.TextColumn = 2 '組合框中顯示哪一列的值,只作顯示值
Me.ComboBox1.ColumnCount = 2 '顯示多少列內容,此時為顯示兩列
Me.ComboBox1.BoundColumn = 1 '返回指定列的值,比如后面取value時就取這個
Me.ComboBox1.ColumnWidths = "1厘米;2厘米;3厘米;" '長,寬,高,直接寫,用分號隔開
End Sub
'Me.ComboBox1.DropButtonStyle = fmDropButtonStyleEllipsis 設置顯示方式


Private Sub ListBox1_Click()
Me.ListBox1.ListStyle '設置樣式,一般是有無多選框
If Me.ListBox1.Selected(X) = True Then '可以用來判定x行是否被選中
Me.ListBox1.ListCount '列表框的條目個數
Me.ListBox1.MultiSelect = fmMultiSelectExtended '為0時,只能選一個,為1時,用鼠標多選或取消選擇,為2時,需要要按shift 或ctrl 才能多選
End Sub

Private Sub UserForm_Click()
Me.ListBox1.ColumnCount = 2
Me.ListBox1.TextColumn = 2
Me.ListBox1.BoundColumn = 2
Me.ListBox1.RowSource = "Sheet1!g2:h6" '直接從工作表中導入數據
Me.ListBox1.ColumnHeads = True '是否顯示列標題,只有從工作表中導入數據源時,而且數據源必須 不包括標題行才有用
End Sub




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM