VBA の日付が DST に含まれているかどうかを知る関数は何ですか?
14197 次
2 に答える
5
現在以外の日付 (DST 2007 以降) の場合:
まず、月の特定の曜日の数を見つける関数が必要です。
Public Function NDow(Y As Integer, M As Integer, _
N As Integer, DOW As Integer) As Date
' Returns Date of Nth Day of the Week in Month
NDow = DateSerial(Y, M, (8 - Weekday(DateSerial(Y, M, 1), _
(DOW + 1) Mod 8)) + ((N - 1) * 7))
End Function
次に、DST の日と次の関数呼び出しを確認できます。
秋: NDow(Year(newdate), 11, 1, 1)
春: NDow(Year(newdate), 3, 2, 1)
現在の日付:
Windows API 関数 GetTimeZoneInformation を呼び出すと、ステータスと共に列挙型 (整数) が返されます。
このコードは、Chip Pearson の優れた Excel サイトから入手しました。
于 2008-09-25T00:57:37.880 に答える
4
ヨーロッパの夏時間 (中央ヨーロッパ時間) をどのように考慮するか知りたい人のために、Chip Pearsonのスクリプトを修正しました。3月の最終日曜日(午前2時~午前3時)と10月の最終日曜日(午前3時~午前2時)は、時間の切り替えが発生する日です。
次のコードは、Excel のボタンのクリック イベントです。
Dim dates As String
dates = "A1:A20"
For Each c In Worksheets("Sheet1").Range(dates).Cells
If (IsDateWithinDST(c.Value)) Then
c.Value = DateAdd("h", 1, c.Value)
End If
Next
必要なメソッドを含むモジュールは、ここにあります。
于 2015-12-18T13:58:38.773 に答える