我正在生成csv文件,有些单元格的格式为 nn:nnnn
,即以冒号分隔的数字 . 它's not a time format nor a date format, it'只是文本单元格,我不希望它们被重新格式化 .
我已经为我的代码添加了一些逻辑,以便确定它是否看起来像一个合法的时间格式或日期,如果是这样,我将这个字符串包装成 ="nn:nnnn"
. 但我对将这些字符添加到所有单元格并不感兴趣 .
它几乎解决了我的问题,但仍有一些情况,如 07:1155
,MS Excel坚持将其翻译为 1.09375 . 其他细胞如 68:0062
保持完整 . 有没有办法识别要计算或翻译的字符串?
是否有任何解决方法,如MS Excel中的任何设置,告诉它不要对这些文本执行任何翻译?
3 回答
我生成了一个CSV文件,其中包含您引用的值并将其导入excel;所有值都作为“常规”导入 - 它们都没有转换为任何其他格式 . 我无法重现您描述的行为 .
如果我能够重现这种行为,我原本打算尝试将导入的值包装在= Text(Value,“#”)中
我从JP Ronse先生那里得到了以下答案Microsoft Community forum
尝试使用单引号在字符串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这样的值没有翻译
在冒号(而不是00)之后检查2 n可能是一种解决方法 .
您可以尝试执行(菜单)数据/获取外部数据/文本,而不是仅在Excel中打开CSV . 或者,如果您使用VBA,那将是这样的:
您可能需要将Text指定为传入列格式 .