下拉按钮更改

时间:2016-05-05 10:11:50

标签: excel vba excel-vba

我有2个下拉列表,我已经分配了一个宏(两个下拉列表都有相同的宏)。第一个下拉列表中的值为:{Feb,March,April,May}。第二个下拉列表中的值为:{销售量,销售额,利润}。现在我想在excel宏中添加一个功能。当我从第一个下拉列表中选择May时,会出现一个带有消息的vbok mssgbox。但是,当在第一个下拉列表中选择了May并且我们更改了第二个下拉列表中的值时,mssgbox不应该一次又一次出现。如同,它应该只出现dropdown1的变化。任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

您需要为第一个下拉框指定不同的宏。它只需要执行 May 的测试,然后调用第二个下拉框的宏(或者在测试之前 - 如你所愿)。

答案 1 :(得分:0)

由于您已经能够为两个下拉框分配一个相同的宏,因此您必须使用表单控件而不是ActiveX控件。

因此,您可以使用宏中的Application.Caller来找出导致宏运行的下拉框:

Sub SameMacroForTwoDropDownBoxes()

'The following line of code will tell you
'  in a message box which of the two
'  drop-down boxes initiated the macro
MsgBox Application.Caller

End Sub

有了这个,您可以根据两个下拉框中的哪一个更改宏来更改宏中发生的事情:

Sub SameMacroForTwoDropDownBoxes()

'The following line of code will tell you
'  in a message box which of the two
'  drop-down boxes initiated the macro
Select Case Application.Caller
    Case "Drop Down 1"
        MsgBox "The first drop-down box has been changed."
    Case "Drop Down 2"
        MsgBox "The second drop-down box has been changed."
    Case Else
        MsgBox "No idea where this was coming from..."
End Select

End Sub