1

私は次のような時間値を持つExcelシートを持っています

A1 00:01:00

A2 00:02:00

forループを使用して特定の時間データを取得したい。以下のような条件式を使用します

if Cells(1,1).Value = TimeValue("00:01:00") Then Do Something

00:01:00から00:30:00までの値を取得できますが、00:30:00から00:59:00までの値の場合、数式Cells(#)。Value = TimeValue( "00:33: 00 ")は機能しません。セルの内容が00:33:00であっても、if条件は真の値を返しません。何が問題ですか。#12:33:00 AM#などを使ってみましたが、うまくいきませんでした。何が問題になる可能性がありますか?(セルを時間形式としてフォーマットしました)。

4

1 に答える 1

1

最初に double に変換して基本型に変換する必要があります。

次に、vba で浮動小数点数を比較するという問題があります。すでにたくさんのトピックがあります。ラウンドを使用するか、単に文字列に変換するだけでうまくいくはずです。

If CStr(CDbl(Sheet1.Cells(1, 1).Value)) = CStr(CDbl(TimeValue("00:33:00"))) Then

浮動小数点エラーに関する詳細情報: Link Link2 Link3

于 2012-10-16T06:08:49.977 に答える