web-dev-qa-db-ja.com

Excelでミリ秒を表示する

Excelマクロでミリ秒を表示しようとしています。ミリ秒単位のタイムスタンプである整数の列(たとえば、28095200は7:48:15.200 am)があり、その隣に新しい列を作成して、平均を維持し、hh:mm:ss.000形式で時間を表示します。

 Dim Cel As Range
 Set Cel = Range("B1")
 temp = Application.Average(Range("A1:A2")) / 1000
 ms = Round(temp - Int(temp), 2) * 1000
 Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _
                & "." & Strings.Format(ms, "#000")

これは、セルに「mm:ss.0」のみを表示します。それでも、セルをクリックすると、数式バーに「hh:mm:ss」と表示されます。なぜ時間が足りないのですか?時間、分、秒、ミリ秒を表示するにはどうすればよいですか?

112
Evelyn

セルB1を右クリックして、セルのフォーマットを選択します。 Customで、Typeというラベルの付いたテキストボックスに以下を入力します。

[h]:mm:ss.000 

これをコードで設定するには、次のようなことができます:

Range("A1").NumberFormat = "[h]:mm:ss.000"

それはあなたが探しているものを与えるはずです。

注:特別にフォーマットされたフィールドは、多くの場合、フォーマットされたテキストの内容全体に対して列幅が十分に広いことを必要とします。そうでない場合、テキストは######として表示されます。

209
Ben McCormack

Excel 2007で、結果が埋め込みクエリのテーブルである場合、ss.000が機能しないことを発見しました。クエリ結果を(SQL Server Management Studioから)貼り付け、時間を適切にフォーマットできます。しかし、Excelでクエリをデータ接続として埋め込むと、形式は常にミリ秒として.000になります。

6
Eric

Excel 2000でこれを行いました。

このステートメントは次のようになります:ms = Round(temp - Int(temp), 3) * 1000

[h]:mm:ss.000の結果セルのカスタム形式を作成する必要があります

4