过去几天我一直在谷歌中查找,但我仍然找不到合适的答案。
目前,我就是这样做的:
For Each cell In ws.Range(fromCol, toCol)
If IsNothing(cell.Value) Then Exit For
valueList.Push(cell.Value.ToString())
Next
但是当它读取假定数据类型为Time的cell
时,它返回Double值。我尝试解析该值,但它与预期的不一样。
如何正确读取具有假定时间类型的单个Excel cell
?
答案 0 :(得分:0)
根据文章的评论,
从某种意义上来说, .Text
是一个坏主意,它只会为您提供该单元格中显示的字符串。例如,如果对单元格的内容使用TypeName
,则无论内容可能是什么数据类型,它都将始终返回字符串。但是,如果使用.Value
,它将返回该单元格内容的实际数据类型名称。
如果您在比较中使用TypeName
,这对您有用。它可以节省您使用转换功能。
举个例子:
Sub Test()
Range("A1") = "True"
Debug.print(TypeName(Range("A1").Value))
Debug.print(TypeName(Range("A1").Text))
End Sub
此输出为:
Boolean
String