如果某个范围包含的日期大于给定日期?

时间:2016-08-11 08:10:44

标签: vba date

我在给定的时间段内有一系列的观察结果。我想对2015年12月31日之后以及2015年1月1日至2015年12月31日之间的所有观察执行一项操作。我想我需要一个“If”函数,但我很难表达日期范围。

这是我的代码版本之一,它不起作用:

If Range("b:b") > "Date(2015,12,31)" Then
If Range("b:b") >= "Date(2015,1,1)" <= "Date(2015,12,31)" Then

无论计算机的区域设置如何,我都需要使用任何日期格式的代码。我已经尝试了很多不同的方法来正确地表达这一点,但是没有这些方法有效。

我的问题只涉及表达“如果”条件的方式。我知道如何在“然后”之后编写代码。

任何帮助解决我的问题的尝试都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

即使使用不同的日期本地化,这也应该有效:

Sub test()

Dim ws As Worksheet
Set ws = Worksheets(1)

With ws
    For Each c In .Range(.Cells(1, 2), .Cells(10, 2))
        If IsDate(c) And c > DateValue(#12/31/2015#) Then
            If c >= DateValue(#1/1/2015#) And c <= (#12/31/2015#) Then
                MsgBox "hi"
            End If
        End If
    Next
End With

End Sub

但是请注意,你的条件没有多大意义。您首先要查看2015年12月31日之后的日期,然后查看2015年12月31日之前或之后的日期。