如果两列在行中具有相等的值,如何实现对话框消息?

时间:2018-11-07 21:10:58

标签: vba excel-vba

我有一些工作表正在分发给管理员,并且A:O列被锁定(受保护的工作表),但是P:T列是可编辑的,带有一些下拉验证列表。

如果经理在S列(单元格S2)中输入数据,并且从下拉列表中选择的值与O列(单元格O2)中的值相同,那么我希望有一个对话框显示他们无法输入与数据上已有的值相同。

我在想像这样的东西,但是它不起作用:

rng 1 = O列,rng 2 = S列

citiesNames

我想要它,所以mgr不能输入相同的值

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您想要更即时的信息,可以使用Worksheet_Change()事件使对话框在输入值后立即显示-并清除该值。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim watchRng As Range
    Set watchRng = Me.Columns("S")

    If Not Intersect(Target, watchRng) Is Nothing Then

        If Target.Value = Me.Cells(Target.Row, "O").Value Then

            Application.EnableEvents = False

            MsgBox "You cannot input the same %"
            Target.ClearContents

            Application.EnableEvents = True

        End If

    End If

End Sub

此功能必须放置在工作表的代码模块中,才能正常工作。