私はAccess VBAでExcelワークブックを処理しています(Reading an Excel workbook from Access参照)。これで、セルに有効な時間値が含まれているかどうかを確認したいと思います。私はIsDate()を使用し、それは正常に動作する日付の。Access VBAでExcelの時刻値を確認する方法?
しかし、時間値では(IsTime()がないため、時間値にIsDate()も使用します)。または、時間の値が倍精度として格納されるため、IsNumericを使用する必要がありますか?
IsDate()はTRUE(!?)を返しますが、Excel自体は時刻値として認識しません。また、VBAデバッガはテキスト文字列として表示します。
"12:00:00"のIsDate()はFALSEを返しますが、Excel自身がそれを時間値として認識すると、VBAデバッガは値0,5を表示します。
誰か?
UPDATE 9/12:@belisariusへ
おかげで、mwolfe02 @私は私の状況のためにこれを見つけた:
/* Valid time value */
IsDate() = False,
IsNumeric() = True,
TypeName() = Double
/* Numeric (no time) value */
IsDate() = False,
IsNumeric() = True,
TypeName() = Double
/* Valid date value */
IsDate() = True,
IsNumeric() = False,
TypeName() = Date
/* Invalid time value (e.g. with leading space as in above example) */
IsDate() = True,
IsNumeric() = False,
TypeName() = String
だから私は唯一TypeName()
場合戻りDouble
とIsNumeric() True
をチェックすると、混乱を避けるために必要があります値が> = 0で<の場合は「通常の」数値で表示されます1.右か?
包括的な回答をいただきありがとうございます。私はまだ問題を完全には理解していませんが、私の状況について私は正しい情報を持っています(私は思っています)、私は私の質問に対する答えとして私の発見を追加します – waanders