excel - 如果两列的行中的值相等,我如何实现对话框消息?
问题描述
我有分发给经理的工作表。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
解决方案
如果您想要更直接的内容,您可以使用该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
这需要放在工作表的代码模块中才能正常工作。
推荐阅读
- ms-access - 在访问中生成随机数后如何修复它们?
- python - 如何知道python进程是否过于频繁地进行垃圾收集?
- python - 如果您的数据具有单一特征,请使用 array.reshape(-1, 1) 重塑您的数据
- amazon-web-services - Amazon aws lex 聊天机器人是否支持视频?
- swift - 将 XCodeProj 转换为 Package.swift
- mongodb - 如何在单个 mongodb 实例上运行多个同名的 mongodb 数据库?
- assembly - 旧 CPU 如何执行新的 ENDBR64 和 ENDBR32 指令?
- python - 无法找到 css_selector 元素 Selenium
- php - 使用 PHP 解析 XML 在打印时给我 NULL
- python - 在站点包中包含子目录文件时遇到问题