excel - 当 sheet1 中的新数据输入更改另一个 sheet2 中的单元格值时自动弹出
问题描述
我对自动消息有疑问。我有一个宏,将数据条目放入 A 列的 sheet2(活动工作表)中。此条目在 sheet2 B 列中写入一个新条目。现在在 sheet1(不是活动工作表)中,此数据条目(sheet2 B 列)自动更新 sheet1 列 C 中的值(通过单元格内的公式)。如果 sheet1 列 C 达到特定阈值(例如 25%),则 sheet1 列 D 被更新并从“Ok”状态变为“Not Ok”状态。我希望每次 D 列状态从“Ok”变为“Not Ok”时都会显示一条警报消息。请问您有什么想法吗?我希望在你的帮助下!我刚刚在 sheet1 中尝试了 worksheet_change 并且它有效,即使我正在使用 sheet2,我如何才能自动显示弹出窗口?预防性感谢您的热心帮助!
在 sheet1 中,此代码工作正常:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("list") ' range between A to D column
Application.EnableEvents = False
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Cells(Target.Row, "D") = "Not Ok" Then
MsgBox Cells(Target.Row, "A") & " is not Ok!"
End If
End If
Application.EnableEvents = True
End Sub
但是,如果我在工作簿中插入此代码,它就不起作用
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("list")
Application.EnableEvents = False
If Sh.Name = "sheet1" Then
If Not Application.Intersect(Target, Sh.Range("list")) Is Nothing Then
If Cells(Target.Row, "D") = "Not Ok" Then
MsgBox Cells(Target.Row, "A") & " is not Ok!"
End If
End If
End If
Application.EnableEvents = True
End Sub
解决方案
添加工作簿更改而不是工作表的事件,添加将检查活动工作表或该单元格中的 Not Ok 状态的代码的小片段。因此,只有在满足这些条件时,您才能收到警报。我在工作簿代码中尝试了此代码。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox ThisWorkbook.Sheets("Sheet2").Range("B1").Value
End Sub
在这里,代码适用于您工作簿中的所有工作表,因此其中任何一个的更改都会触发此事件。 您现在可以将代码修改为仅在“不正常”时发出警告,而不是全部发出警告。简单的 if 语句应该这样做。
就像是:
check=ThisWorkbook.Sheets("Sheet2").Range("B1").Value
if not(check="OK") then
MsgBox "Not OK"
end if
推荐阅读
- opengl - OpenGL中glBindBufferBase()中的索引和几何着色器中的流号有什么关系?
- python - 如何在python中实现#ifdef,专门用于检查testrunner
- ios - 无效的可执行文件 - 可执行的 ProjectName WatchKit Extension' 不包含位码
- javascript - 每当我在反应中运行“npm start”时我得到错误:找不到模块'autoprefixer'
- google-sheets - Google表格中无限真实动态范围的平均值的ArrayFormula
- assembly - 在 NASM x86_64 中调用 sprintf 会导致分段错误
- excel - 使用 excel vba 计算每行中的重复值和报告重复数
- java - 运行junit测试时找不到lombok getter
- react-native - React Native 中的慢发布请求
- reactjs - HTML 表格单元格内边距