excel vba:如果更改了多次,下拉列表选择更改会显示消息吗?

时间:2015-09-08 08:32:50

标签: excel vba

我正在尝试创建一段vba代码,当用户从excel的下拉列表/验证列表中选择一个值时,该代码会向用户生成一条消息。

到目前为止,我的脚本做得很好。但是,我希望用户能够从下拉列表中选择他们的第一个值而不收到消息,然后在第二次,第三次或第四次等,如果他们应该在下拉列表中更改他们的选择我想要消息显示。

有人可以告诉我这样做的方法吗?提前致谢

'Check number of times a user has changed their selection
    Dim rM As Range
    Set rM = Range("M" & ActiveCell.Row).Cells.SpecialCells(xlCellTypeAllValidation)
    If Intersect(Target, rM) Is Nothing Then
    Else
       MsgBox "changed"
    End If

1 个答案:

答案 0 :(得分:0)

添加..

Private BooRangeSelected as Boolean

...位于VBA代码的最顶层。 在Initialize事件中将此值设置为False。 更新下拉列表时将此值设置为True。 如果在选择下拉列表时该值已为True,则发出消息。

我假设此宏附加到工作簿而不是存储在" personal.xlsb"中的表单。在Excel /视图代码中,双击" ThisWorkbook"图标(见下文

enter image description here

Private Sub Workbook_open()
    Private BooRangeSelected as Boolean
    BooRangeSelected = False
End Sub

一旦打开工作表,这会将变量设置为False。然后,您可以在选择下拉列表后将其设置为True

BooRangeSelected = True