1

ブックを間違えたため、ブックからデータを抽出しようとしていますが、データを保持したいと思います。したがって、各ワークシートに目を通し、必要なデータの特定のビットを抽出する必要があります。(反復タスク=救助のためのvbaコード)

完了しましたが、厄介な小さな問題が1つあります。

ws.Range( "C13")を使用して、必要な各セルを抽出しています。これは、10:00や22:13のような時間値を持つセルです。ただし、その値をdebug.printすると、小数が表示されます。なんで?「10:30」が「0.4375」に変換されないようにするにはどうすればよいですか

私の知る限り、小数は時間の値とは関係がありません。間違って、それは単に24時間の期間の表現としての時間値です。だからそれは関連しています。それでも。

4

3 に答える 3

7

ws.Range("C13")は、ws.Range("C13").Valueそのセルから基になるデータを返すのと同じです。

代わりに を使用するws.Range("C13").Textと、表示されたテキストがセルから取得されます。そのセルに特定の日付/時刻形式を設定している場合、呼び出しws.Range("C13").Textはその特定の形式でテキストを返す必要があります

于 2013-03-12T23:19:08.440 に答える
2

時間の値は正しいです。これは、Excel が日付と時刻の値を内部的に保存する方法です。

日付は浮動小数点値として格納されます。整数部分は12/30/1899 00:00.00(date 0.0) からの日数を表し、小数部分は 1 日の小数部分を表します (たとえば、408875.5を表し11/28/2011 12:00:00 PMます)。

便利な変換係数を次に示します。

Decimal value    Time Value    Calculation 
=============    ==========    ===========
0.00094444444    12:01:00 AM   1.0 / 24 / 60 (1 day/24 hours/60 minutes per hour)
0.01041666666    12:15:00 AM   1.0 / 24 / 60 * 15
0.02083333333    12:30:00 AM   1.0 / 24 / 60 * 30
0.04166666666    01:00:00 AM   1.0 / 24
于 2013-03-12T22:39:38.027 に答える
0
hours        = MOD(INT(0.tttttttt*24), 24)
minutes      = MOD(INT(0.tttttttt*24*60), 60)
seconds      = MOD(INT(0.tttttttt*24*60*60), 60)
milliseconds = MOD(INT(0.tttttttt*24*60*60*1000), 1000)
于 2015-01-30T22:57:08.680 に答える