2016-11-18 3 views
0

私はUTCの日付に基づいて名前が変更されたファイルにアクセスしています。私はUSEです。したがって、Date VBA関数を使用すると、UTCの次の日であるため、ファイルを取得しないことがあります。私はUSEです。日付VBA機能を使用しますが、フォーマットする前に4時間を追加する必要があります。

Dim dttDate As Date 
dttDate = Date 

Set LMData = Workbooks.Open("C:\...\PRIVATENAME" & Format(dttDate, "yyyy-mm-dd") & ".csv") 

私は(今だけでなく、時間に扱っているので)今すぐ+ 4と考えましたが、問題は、私は、単一の整数はヶ月が読み出され、私は時間としてそれを読む方法を決定できないことをVBAで見られています。 Excelの関数の日付は#値なので、+ 4は4時間を追加します。

+0

Windows APIを使用して直接UTC時刻にアクセスできます。これを行うためのエレガントな方法については、Chip Pearsonの[Time Zones and Daylight Savings Time](http://www.cpearson.com/excel/TimeZoneAndDaylightTime.aspx)を参照してください。 –

答えて

1

参考:Date and Time Functions in VBA

時間は 日付と時刻のための二重のそのアクセス店舗の小数部分を表しています。保存された日付/時刻に1を加算すると、1日が または24時間になるため、各時間は.041666または1日の24分の1として保存されます。 In アクセスはすべて1日の一部として保存されます。各時間は1/24 日、毎分1/1440、毎秒1/86400です。したがって、3:00は として.125(または1/8)、16:00は0.666(または 日の2/3)として保存されます。逆に、0.2は4:48時間(1日の1/5)などを表します。

dttDate = int(Now + 4/24) 
+0

@chrisneilsenそうです。ありがとう! –

+0

説明もありがとうございます! –

+0

私の答えを受け入れてくれてありがとう。乾杯! –

関連する問題