1 combobox控件,显示A列处理后的数据,求助问题内容
- QQ群玩家求助的内容,
- 说是这样报错
- 看了下,代码有问题 b=0 一般不应该在循环内,并且redim 不preserve 数组估计被不断重置了
- 另外combobox1.list 报错不应该有问题,怀疑是写成了 comboboxl 或有几个 combobox 造成当前的不是combobox1
1.1 添加 combobox (组合框),实现下拉显示效果
1.2 ComboBox1_GotFocus() 事件中编辑代码
- 修改了b=0 ,放在循环外
- 修改ReDim Preserve arr1(1 To b)
- 其实 调用countif统计大于0的数量,就不用循环中redim了 ,在循环内redim 很容易出问题的
- 没有报错
Private Sub ComboBox1_GotFocus()
Dim arr
Dim arr1()
Dim a, b As Integer
arr = Range("a1:a12")
b = 0
For a = 1 To UBound(arr)
If arr(a, 1) > 0 Then
'b=0
b = b + 1
ReDim Preserve arr1(1 To b)
arr1(b) = arr(a, 1)
End If
Next a
ComboBox1.List = arr1
End Sub
1.3 运行后效果
2 combobox(组合框)控件相关
2.1 区分是 表单控件,还是 activeX控件
- 表单控件的combobox好像没事件,只有绑定宏
- ActiveX 控件 才有GotFocus,03版可在视图-工具栏-控件工具箱,打上勾,这个才会出来的中调出
- 两者虽然都叫ComboBox,但一部分事件是不相同的。
2.2combobox 相关的事件
2.3 combobox相关的属性和方法