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