首页 > 解决方案 > 如果单元格的日期在今天之后,则运行子例程

问题描述

如果单元格 l1 的日期已经过去,我试图让一些 vba 代码运行。但是,我遇到了运行时错误 91。我正在使用的代码如下,但不幸的是,尽管我努力解决了这些变量,但有些地方不太对劲。

Sheets("HAULAGE PLANNER").Activate
Dim FoundCell As Object

Set FoundCell = Range("L1").Find(what:=Date)

    If FoundCell = ("<= Today") Then

   Run.Module1.nextweek

    Else: Exit Sub
   End If
End Sub

标签: excelvbaruntime-error

解决方案


将我的评论移至答案。


如果您正在查看特定单元格,则不需要 .find()。如果 Range("L1").Value <= Now() Then 就足够了。

您可能还需要检查这L1实际上是一个日期,因此您将使用IsDate进行检查。

第三点,不要使用激活......你可以只限定Sheets()单元格引用。

具有上述更改的代码模型(未经测试):

Dim DateCell As Range
Set DateCell = Sheets("HAULAGE PLANNER").Range("L1")
If Not IsDate(DateCell.Value) Then Exit Sub
If DateCell.Value <= Now() Then Application.Run("Module1.nextweek")

推荐阅读