+ -
当前位置:首页 → 问答吧 → 求助关于combobox.list数组赋值的问题

求助关于combobox.list数组赋值的问题

时间:2011-08-06

来源:互联网

求助关于combobox.list数组赋值的问题
下面是一段代码,但出错了。请问:我想打开USERFORM时在COMBOBOX1中显示数组的上标,且我已设定COMBOBOX1的STYLE属性为2,只能选择,不他人输入数据。
现在设置初始值出错,提示不能设置TEXT 、VALUE “属性”,即下面代码的红色部分。不写这句,调出窗口,combobox1框中是空白。
请问如何做到调出窗口后,combobox1框中显示数组arr的上标?
Private Sub UserForm_Initialize()
Dim row As Long, arr
row = Sheet4.Range("bk65536").End(xlUp).row  - 1
arr = Sheet4.Range("bk2:bk" & row).Value
UserForm4.ComboBox1.List = arr
UserForm4.ComboBox1.Value = LBound(arr)
End sub

作者: mjzxlmg   发布时间: 2011-08-06

combobox.add item 才对吧
不是combobox.value
另外,推荐用for循环增加

[ 本帖最后由 aoranbuqun 于 2011-8-6 22:20 编辑 ]

作者: aoranbuqun   发布时间: 2011-08-06

UserForm4.ComboBox1.Value = arr(LBound(arr))
这样呢?

UserForm4.ComboBox1.listindex=LBound(arr)

作者: livewire   发布时间: 2011-08-06

引用:
原帖由 livewire 于 2011-8-6 22:31 发表
UserForm4.ComboBox1.Value = arr(LBound(arr))
这样呢?

UserForm4.ComboBox1.listindex=LBound(arr)
谢谢楼上的,测试结果如下:
上面的这种情况,显示“下标越界”
下面的方法,可以设置显示,但是框中显示的不是第一项(上标),而是第二项。如数组是:1,2,3,4,5,它显示的是2.
UserForm4.ComboBox1.listindex=UBound(arr)
改成下标也出现错误。

[ 本帖最后由 mjzxlmg 于 2011-8-6 23:03 编辑 ]

作者: mjzxlmg   发布时间: 2011-08-06

UserForm4.ComboBox1.Value = arr(LBound(arr),1)
如value  不行,试下UserForm4.ComboBox1.TEXT

作者: livewire   发布时间: 2011-08-06

引用:
原帖由 livewire 于 2011-8-6 22:56 发表
UserForm4.ComboBox1.Value = arr(LBound(arr),1)
如value  不行,试下UserForm4.ComboBox1.TEXT
试过了,也和VALUE一样,出现不能设置属性的错误。
但是把Style属性设置为0时,
UserForm4.ComboBox1.Value = LBound(arr) 、 UserForm4.ComboBox1.text = LBound(arr) 、UserForm4.ComboBox1.Value = UBound(arr) 、 UserForm4.ComboBox1.text = UBound(arr)均不报错,显示的也正常的上标、下标。
现在的问题是把COMBOBOX1的Style的属性设置为2时,不知如何弄了。

作者: mjzxlmg   发布时间: 2011-08-06

相关阅读 更多