在此先感谢您的帮助。
对于整个excel VBA来说还是很新的东西。理想情况下,我希望一些代码能够执行以下功能。
这是我的例子;
我大约有20行数据,(A)列中包含引用,(B)列中包含申请日期,(C)列中包含用于计算经过时间的公式,并且(D)列中的状态为“ TRUE”或“ FALSE”(如果指定的时间段过去了)。
我想在一天的某个特定时间发生,例如上午11:00,我希望出现一个消息框,显示文本“ Chase Documents”。仅当满足以下条件时,才会出现此消息:D:D列中的文本=“ TRUE”。如果为“ FALSE”,则忽略。
我只希望此消息出现在给定的指定时间,而不是每次都将数据输入到工作表中。
是否还可以引用同一行中的另一个单元格?并显示在文本框中?例如出现文本框,其中包含文本“ 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
我不断遇到带有以上代码的错误消息。
理想情况下,我希望在一天中的某个时间提醒您,指出需要根据指定列中的值来跟踪文档。
再次获得任何帮助将不胜感激!
谢谢
答案 0 :(得分:0)
您已经非常接近您的代码了:
在ThisWorkbook
中添加以下内容:
Option Explicit
Private Sub Workbook_Open()
Application.OnTime TimeValue("11:00:00"), "ChaseDocs"
End Sub
在任何module
中,添加以下内容(并更改工作表名称):
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