excel - 基于时间和范围值的消息框
问题描述
提前感谢您对此的任何帮助。
对整个 excel VBA 来说还是相当新的。理想情况下,我希望一些代码能够执行以下功能。
这是我的例子;
我有大约 20 行数据,列 (A) 包含引用,列 (B) 包含申请日期,列 (C) 包含计算经过时间段的公式,列 (D) 状态为“真”或“假” " 如果指定的时间段已经过去。
我希望发生在一天中的特定时间,比如上午 11:00,我希望出现一个显示文本“Chase Documents”的消息框。这仅在满足以下条件时才会出现,列 D:D = "TRUE" 中的文本。如果“假”则忽略。
我只希望在给定的指定时间出现此消息,而不是每次将数据输入工作表时出现。
是否也可以从同一行引用另一个单元格?并让它显示在文本框中?例如,文本框会显示文本“Chase Documents”以及列 (A) 中的值。
我知道这可能是不可能的,但我们将不胜感激。
这是我对代码的了解;
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Range("D:D").Find(what:="TRUE", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True) Is Nothing Then
MsgBox "CHASE Documents!!"
End If
End Sub
Private Sub Workbook_Open()
Application.OnTime TimeValue("11:00:00"), "Change"
End Sub
我不断遇到上述代码的错误消息。
我理想中想要的是在一天中的某个时间点进行提醒,说明需要根据指定列中的值来追踪文档。
再次对此提供任何帮助将不胜感激!
谢谢,
解决方案
您已经非常接近您的代码:
在ThisWorkbook
添加这个:
Option Explicit
Private Sub Workbook_Open()
Application.OnTime TimeValue("11:00:00"), "ChaseDocs"
End Sub
在 anymodule
中,添加这个(并更改工作表名称):
Option Explicit
Sub ChaseDocs()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Your Sheet Name Here")
Dim rngSrc As Range
Set rngSrc = ws.Range("D:D").Find(what:="TRUE", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Not rngSrc Is Nothing Then
MsgBox "CHASE Documents!!" & vbCrLf & vbCrLf & rngSrc.Offset(, -3).Value
'vbCrLf ==> means new line
'rngSrc.Offset(, -3).Value ==> means get the value 3 columns to the left from current position
End If
End Sub
推荐阅读
- r - 使用热图 + 散点跟踪进行绘图。无法同时显示颜色条和散点图例条目
- python - jsonschema - python - 如何验证包含 ref 的模式
- excel - 将数据从垂直列表移动到水平方向的宏
- amazon-web-services - 按流量排序 ELB
- javascript - 1 个表格,1 个路线,2 个班级
- python - 如何检查数据集的拼写错误并替换它们?
- c# - Unity C#“当前上下文中不存在名称‘mathf’”
- function - 是否可以从定义内部的条目中访问信息并在定义之外使用它
- html - 在 django 模板中过滤外键对象
- arabic - .net 核心读取包含阿拉伯字符的 DBF 数据库