Excel时间价值比较

我有一个有时间价值的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#等,它也没有工作。 可能是什么问题? (我把格式化为时间格式)。

您需要先转换为其基本types转换为双。

然后是比较vba中的浮点数的问题。 那里已经有很多话题了,我不会惹恼一匹死马。 你可以使用圆或简单地转换为一个string应该做的工作。

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

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