在列表框中选择一个值并将焦点设置为该值 - VBA

时间:2017-05-30 11:19:05

标签: vba excel-vba excel

我正在尝试动态选择Listbox中的值。但我不能这样做。我收到错误,Object不支持此属性或方法。

这是代码,

ReqSearchvalue = Range("B" & reqrow).Value

Sheets("Main").Activate

With Sheets("Main").Ent_ListBox
    .Values = ReqSearchvalue
    .SetFocus = ReqSearchvalue
End With

请分享您的想法。提前谢谢!

2 个答案:

答案 0 :(得分:2)

感谢@Peh纠正此事。

循环浏览List以查找您正在查找的值的索引,然后将.Selected(idx)设置为True。

Dim i As Long, found As Boolean
With Worksheets("Main").OLEObjects("Ent_ListBox").Object
    For i = 0 To .ListCount - 1
        If .List(i) = ReqSearchvalue Then
            found = True
            Exit For
        End If
    Next i
    If found then .Selected(i) = True
End With

答案 1 :(得分:-1)

ListBox.SetFocus是一种方法,它将焦点设置在列表框本身上,您无法为其赋值。您必须找到所需项目的索引,然后使用.SelectedItem(index)