如何正确读取单个Excel单元格
在过去的几天里我一直在寻找谷歌,但是我仍然无法find一个好的答案。
目前,这是我如何做到的:
For Each cell In ws.Range(fromCol, toCol) If IsNothing(cell.Value) Then Exit For valueList.Push(cell.Value.ToString()) Next
但是当它读取假定数据types为Time的cell
时,它会返回Double值。 我试图parsing这个价值,但它不像预期的那样。
如何正确读取具有假定types的时间的单个Excel cell
?
根据build议文章的评论,
.Text
从一个意义上说是一个坏主意,它会给你在那个单元格中显示的string。 例如,如果在单元格的内容上使用TypeName
,则无论内容可能是什么数据types,它都将始终返回string。 但是,如果使用.Value
,它将返回该单元格内容的实际数据types名称。
如果您在比较中使用TypeName
,这可以certificate对您有用。 它可以节省您使用转换function。
以这个例子:
Sub Test() Range("A1") = "True" Debug.print(TypeName(Range("A1").Value)) Debug.print(TypeName(Range("A1").Text)) End Sub
这个输出是:
Boolean String