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"
vba listbox控件详解
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。