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中比较浮点数的问题。已经有很多话题了,我不会鞭打一匹死马。您可以使用 round 或简单地转换为字符串来完成这项工作。

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

进一步阅读浮点错误: Link Link2 Link3

于 2012-10-16T06:08:49.977 回答