我在图表中有一个列表框,当调用函数" drawDiagram"我想获取列表框中的选定项目。这是我的代码:
Function DrawDiagram()
Dim x As Integer
Dim diaLst As ListBox
Set diaLst = ActiveSheet.ListBoxes("DiaList")
' find selected trends in List Box
For x = 0 To diaLst.ListCount - 1
If diaLst.Selected(x) = True Then
MsgBox x
End If
Next x
End Function
diaLst.ListCount正确返回列表中的Items数。但是diaLst.Selected(x)根本不起作用。
错误讯息是: 德语:" Die Selected-Eigenschaft des ListBox-Objektes kann nicht zugeordent werden" 英语:"无法分配ListBox对象的Selected属性" (或类似的)
有谁知道,我做错了什么?
感谢 natasia
答案 0 :(得分:0)
首先,你必须处理一个" Form"控制(不是" ActiveX"一个),否则你无法通过.ListBoxes
类的Worksheet
属性获取它
我在我的环境中测试过它(W7-Pro和Excel 2013)并发现(对我来说很奇怪)Selected()
属性数组是从1开始的。
在模块开头的<{1}}
确保将Microsoft Forms 2.0对象库引用添加到项目中
Option Base 0
答案 1 :(得分:0)
顺便说一下,这是我用来在单独的函数中生成图表工作表中的列表框的代码。单击按钮时,将调用DrawDiagram函数。 &#34; DrawDiagram&#34;的目标function用于绘制图表中列表框的选定项目。
Set diaLst = ActiveSheet.ListBoxes.Add(ActiveChart.ChartArea.Width - 110, 5, 105, 150)
With diaLst
.Name = "DiaList"
.PrintObject = False
.MultiSelect = xlSimple
i = 2
While wTD.Cells(rowVarNames, i) <> ""
.AddItem wTD.Cells(rowVarNames, i)
i = i + 1
Wend
.Selected(3) = True
End With
答案 2 :(得分:0)
使用表格(&#34; Sheet1&#34;)。形状(&#34;列表框1和#34;)。而不是OLEFormat.Object