2016-08-11 6 views
0

私は一定の期間内にある範囲の観察をしています。 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 

私は関係なく、コンピュータの地域の設定の任意の日付フォーマットで動作するコードが必要です。私はこれを正しく表現するためにさまざまな方法を試しましたが、それらのどれもうまくいきませんでした。

私の質問は「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 

注意。まず、31.12.2015以降の日付を探してから、31.12.2015以前の日付を探します。

+0

ありがとうございます。 – Niko

関連する問題