列表框选定属性会导致问题

时间:2016-06-08 20:47:45

标签: excel vba listbox

我在图表中有一个列表框,当调用函数" 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

3 个答案:

答案 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