2016-08-11 85 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

相關問題