选择其他ListBox时取消选择ListBox

时间:2016-01-28 21:28:11

标签: excel vba excel-vba

我正在运行一个有3个列表框的UF。我每个都有BoxA_Click()BoxB_Click个子,在执行时选择工作表上的单元格。如果我单击BoxA中的值,宏将执行并选择单元格。然后,如果我单击BoxB中的值,宏将执行并找到不同的单元格。问题是,当我单击BoxA时,如果我选择已经选择的值,则BoxA_Click()宏将不会执行,因为我在技术上没有更改该特定框中的选择。

我尝试的解决方案是创建一个框架FrameMove,我放置了所有3个列表框。我试图写一些东西,当点击一个盒子时会取消选择其他2个盒子。

Private Sub BoxA_Click()
    GoToCell(BoxA.Value)
    Dim C As MSForms.Control
    For Each C In FrameMove.Controls
        If TypeOf C Is MSForms.ListBox Then 'C.ListIndex = -1 ???
    Next C
End Sub

我目前正在遍历框架内的所有控件,因为我不确定如何专门遍历ListBoxes。当选择一个列表框时,有没有办法让这个工作取消选择所有其他列表框?

1 个答案:

答案 0 :(得分:0)

添加一行代码,以便在每个Listbox点击事件结束时取消选择所选项目。

BoxA.Selected(0) = False

如果列表框是多重选择,则循环显示它们。

For i = 0 to BoxA.ListCount - 1
    BoxA.Selected(i) = False 
next i