如何正确读取单个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