【问题标题】:If a range contains dates greater then a given date?如果范围包含大于给定日期的日期?
【发布时间】:2016-08-11 08:10:43
【问题描述】:

我在给定的时间段内进行了一系列观察。我想对 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

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

我的问题仅涉及表达“如果”条件的方式。我知道“Then”后面的代码怎么写。

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

【问题讨论】:

    标签: vba date


    【解决方案1】:

    这应该可以工作,即使有不同的日期本地化:

    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
    

    但请注意,您的条件没有多大意义。您首先查找 31.12.2015 之后的日期,然后查找 31.12.2015 之前或等于 31.12.2015 的日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多