【问题标题】:VB: Date format problem when loading *.csvVB:加载 *.csv 时的日期格式问题
【发布时间】:2011-10-19 02:13:50
【问题描述】:

我在 excel 更改日期格式以使其适合区域设置时遇到问题。

我的问题是: 我正在创建工具,用户在其中选择要导入和使用的 *.csv 文件。虽然工具在用户端我不能依赖区域设置 - 工具必须为所有人工作。 问题是 excel 会自动更改日期格式以适应区域设置,因此它是错误的,或者我无法使用静态分隔符(如“/”)解析它。

我知道日期在 csv 文件中的写入格式(yyyy-mm-dd 或 dd/mm/yy)并且我想将该日期读取为文本所以我可以使用 DateSerial 创建正确的日期。

有没有办法将 csv 仅作为文本读取并防止 excel 自动将其更改为日期(基于用户区域设置)?

谢谢。

【问题讨论】:

  • 您可以编辑迄今为止使用的列的格式设置。
  • 如果已经有日期,将其更改为文本会将其拆分为数字。比如2008-06-11会改成39610。
  • 我的错,它可以工作(.TextFileColumnDataTypes...)

标签: excel vba date


【解决方案1】:

导入时,将列指定为文本。

或者,在每个日期值的开头放置一个撇号。这是“这是一个文本值,不要重新格式化它”符号。

例子

123,'12/29/1999,blah blah

【讨论】:

  • 我遇到了如何将其指定为文本的问题,终于完成了。正如我之前所说的 textfilecomundatatypes 是解决方案,我发现它比插入撇号更好,因为我无法访问所有可能使用的 csv 文件。
  • 微软有时太有帮助了。我对 Microsoft 最大的了解是,他们提供了如此多的帮助,以至于很难做他们没有预料到的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 2014-10-28
  • 2020-10-26
  • 1970-01-01
相关资源
最近更新 更多