如果两列在其行中具有相等的值,我如何实现对话框消息?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果两列在其行中具有相等的值,我如何实现对话框消息?相关的知识,希望对你有一定的参考价值。
我有分发给管理员的工作表和列A:O被锁定(受保护的工作表),但是P:T列可以使用一些下拉验证列表进行编辑。
如果管理员在列S(单元格S2)中输入数据并且从下拉列表中选择它们的选择=与列O(单元格O2)中的值相同,那么我想要一个对话框来显示它们不能输入相同的值什么是数据已经。
我在想这样的东西,但它不起作用:
rng 1 =列O,rng 2 =列S.
Dim rng1 As range, rng2 As range
lastrow = ActiveWorkbook.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).row
Set rng1 = Range("O2:O" & lastrow)
Set rng2 = Range("S2:S" & lastrow)
If rng1.value = rng2.value Then
-dialogue box "You cannot input the same %"
End If
我想要它所以mgr无法输入相同的值
这可能吗?
答案
如果您想要更直接的东西,可以使用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
这需要放在工作表的代码模块中,以便正常工作。
以上是关于如果两列在其行中具有相等的值,我如何实现对话框消息?的主要内容,如果未能解决你的问题,请参考以下文章