2016-08-11 82 views
0

我在给定的时间段内有一系列观察值。我想对2015年12月31日之后以及2015年1月1日 - 2015年12月31日之间的所有观测值执行操作。我想我需要一个“如果”功能,但我很难表达日期范围。如果范围包含日期大于给定日期?

这是我的代码的版本不工作之一:

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

我需要的代码与任何日期格式的工作不管计算机的区域设置。我尝试了很多不同的方式来正确表达这一点,但是他们中的一些人都没有工作。

我的问题只考虑表达“If”条件的方式。我知道如何在“Then”之后编写代码。

任何试图帮助解决我的问题将不胜感激。

回答

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日之前或之前的日期。

+0

谢谢,这是有效的 – Niko

相关问题