我正在尝试创建一段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
答案 0 :(得分:0)
添加..
Private BooRangeSelected as Boolean
...位于VBA代码的最顶层。 在Initialize事件中将此值设置为False。 更新下拉列表时将此值设置为True。 如果在选择下拉列表时该值已为True,则发出消息。
我假设此宏附加到工作簿而不是存储在" personal.xlsb"中的表单。在Excel /视图代码中,双击" ThisWorkbook"图标(见下文
Private Sub Workbook_open()
Private BooRangeSelected as Boolean
BooRangeSelected = False
End Sub
一旦打开工作表,这会将变量设置为False。然后,您可以在选择下拉列表后将其设置为True
BooRangeSelected = True