我有一个Excel 2003文件。在第一张表中,我放了一个组合框。之后,我分配一个宏来处理更改事件。宏位于VB Editor的Project Explorer框中的一个模块。在宏中,我想写一些行来获取组合框的选定项索引的索引。我该怎么写?
我写了一行
If ActiveSheet.cbFilter.Index = 1 Then
但它一直在引发错误(组合框的名称是“cbFilter”)。错误消息是“对象不支持方法的此属性”。请帮帮我。
非常感谢,
哈里斯
答案 0 :(得分:1)
尝试删除“ActiveSheet”。声明的一部分,我的猜测是组合已经在该表中。
来源:经验
此致
答案 1 :(得分:0)
您是否已将项目添加到组合列表中?
在调试器中尝试这些代码:首先调用Preload()一次,然后从组合中选择任何内容,然后运行Readout()....这应该给你一个提示。
Sub Preload()
ActiveSheet.ComboBox1.AddItem "111"
ActiveSheet.ComboBox1.AddItem "222"
ActiveSheet.ComboBox1.AddItem "333"
End Sub
Sub ReadOut()
ActiveSheet.[A1] = ActiveSheet.ComboBox1.ListIndex
ActiveSheet.[A2] = ActiveSheet.ComboBox1
End Sub
你也应该检查你是否创建了对MSForms 2.0对象库的引用(FM20.DLL - 或类似的)
编辑:
我刚刚测试了空Combo的情况...索引将为-1
答案 2 :(得分:0)
试试这个。如果您查看对象浏览器cbFilter
对象是sheet1
的属性,可以从模块中引用如下。
MsgBox Sheet1.cbFilter.ListIndex
If Sheet1.cbFilter.ListIndex = 1 Then