使用for循环在VBA中减去日期

时间:2017-02-08 02:59:27

标签: excel vba excel-vba

当两个日期之间的差异大于n时,我正在尝试做出决定。当我使用变量(counter)来引用行索引时,会出现问题,它会返回类型不匹配,并且不会从Date中减去。如果我用一个数字替换变量counter它运行正常。

为什么我会收到不匹配错误?

为什么当我用变量调用单元格值时,它会以不同的方式查看单元格值,即使变量等于数字?

感谢您的帮助。

Sub LoopTest()

Dim counter As Integer
    For counter = 1 To 5
        If Date - Cells(counter, 2) > 30 Then
            Range("H" & counter).Value = "working"
        End If        
    Next    

End Sub

1 个答案:

答案 0 :(得分:0)

尝试下面的代码(我用日期,数字,文本进行了测试,并且它有效)

Option Explicit

Sub LoopTest()

Dim counter As Long

    For counter = 1 To 5
        If IsDate(Range("B" & counter).Value) Then
            If DateDiff("d", Date, Range("B" & counter).Value) > 30 Then
                Range("H" & counter).Value = "working"
            End If
        End If
    Next

End Sub