将宏分配给列表框OnSelectionChange(不是OnAction)

时间:2019-08-29 13:24:58

标签: excel vba

如何将宏分配给Excel电子表格上的列表框而不是OnAction,而是在Selection_Change上?列表框是通过“开发人员/插入/表单控件添加的。它不是用户窗体中的列表框。

问题是如果我尝试滚动列表框中的选项,则宏将启动,因为Excel将滚动视为动作。但是,我希望仅在用户从列表框中选择(选择/取消选择)某些选项的情况下运行宏。

我试图为“形状”集合找到某种方法。但是,没有找到任何东西。

1 个答案:

答案 0 :(得分:1)

将Listindex存储在变量中,并检查其是否已更改: (对于单选:)

Public myIndex As Long

Sub ListBox1_Change()
With ActiveSheet
    If .ListBoxes(1).ListIndex = myIndex Then Exit Sub
    myIndex = .ListBoxes(1).ListIndex
End With
Debug.Print "your macro"
End Sub

确保打开文件myIndex时填充了Listindex 并调整ListBox的名称,并相应地调整(1)