2

我正在生成 csv 文件,有些单元格的格式为nn:nnnn,即用冒号分隔的数字。它既不是时间格式也不是日期格式,它只是文本单元格,我根本不希望它们被重新格式化。

我在我的代码中添加了一些逻辑,以识别它是否看起来像合法的时间格式或日期,如果是,我像这样包装该字符串="nn:nnnn"。但我对将这些字符添加到所有单元格不感兴趣。

它几乎解决了我的问题,但仍有一些情况,例如07:1155MS Excel 坚持将其翻译为1.09375。其他细胞如68:0062保持完整。有没有办法识别要计算或翻译的字符串?

是否有任何解决方法,例如 MS Excel 中的任何设置,告诉它不要对这类文本执行任何翻译?

4

2 回答 2

1

除了在 Excel 中打开 CSV,您还可以尝试执行(菜单)数据/获取外部数据/从文本。或者,如果您使用的是 VBA,则类似于:

With ActiveSheet.QueryTables.Add(Connection:="TEXT;H:\csvtest.csv" _
    , Destination:=Range("$A$3"))
    .Name = "csvtest_1"
    .FieldNames = True
   etc
End With

您可能需要将 Text 指定为传入的列格式。

于 2013-04-02T13:53:31.597 回答
1

我在Microsoft 社区论坛上从 JP Ronse 先生那里得到了以下回答

尝试在像 07:1155 这样的字符串前面加上一个单引号。单引号可防止 Excel 解释该值。

出于某种原因,Excel 将像 07:1155 这样的字符串解释为时间并将其转换为值。Excel 将 07:1155 视为 7 小时 1155 分钟,转换为值:

07:00 => 0.291666666666667 1155 分钟 => (1155/60)/24 => 0.802083333333333

总和是 1.09375

看起来像 n:00nn 或像 n:0nnnnn 这样的值没有翻译

检查冒号后的 2 n(不是 00)可能是一种解决方法。

于 2013-04-04T07:06:54.483 回答