从列表框对象到范围

时间:2016-01-08 15:13:50

标签: excel vba excel-vba listbox

我正在尝试根据一系列单元格(匹配)检查列表框中的项目

这是我迄今为止所做的。

Dim j As Integer
Dim lItem As Long
Dim rowx as Long

rowx = 12

j = 0
For lItem = 0 To Worksheets("Bordereau Prep").ListBoxPlot.ListCount

    If Worksheets("Bordereau Prep").ListBoxPlot.List(lItem) = Worksheets("Liste").Cells(rowx, 40 + j) Then
        Worksheets("Bordereau Prep").ListBoxPlot.Selected(lItem) = True
        j = j + 1
    End If

Next lItem

这就是我想要的,检查列表中range_pr_el中的项目,但它会在以下位置引发错误:

If Worksheets("Bordereau Prep").ListBoxPlot.List(lItem) = Worksheets("Liste").Cells(rowx, 40 + j) Then

告诉我"错误381:无法读取List属性。属性表的索引无效"。而且我不明白为什么,因为它确实进入了循环,它确实做了它应该做的事情。缺少什么来纠正错误?

提前谢谢

1 个答案:

答案 0 :(得分:1)

尝试使用

For lItem = 0 To Worksheets("Bordereau Prep").ListBoxPlot.ListCount - 1

当进行for循环时,最后一次迭代将使lItem等于列表项的数量。但是,列表索引从0开始,因此应该有1的差异。

例如,如果你有1个列表项,.ListCount方法会给你1,所以for循环将尝试访问索引为0的列表项和索引为1的列表项。这会给你一个错误,因为列表框没有& #39; t有2个项目。

`