2012-10-16 70 views
1

我有了时间值像Excel的时间值进行比较

A1 00:01:00

A2 00:02:00

一个Excel表,我想用一个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公式单元格(#)。Value = TimeValue(“00:33:00”)不起作用。即使单元格内容为00:33:00,if条件也不会返回真值。问题是什么。我试图使用#12:33:00 AM#等,但它也不起作用。可能是什么问题? (我把这些单元格格式化为时间格式)。

回答

1

您需要先转换为其基本类型,转换为double。

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

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

浮点错误延伸阅读: Link Link2 Link3

+0

谢谢你,我会检查链接。而且我会考虑使用小时,分钟等功能 –