【问题标题】:data format gets converted unexpectedly from dd/mm/yyyy to mm/dd/yyyy数据格式意外地从 dd/mm/yyyy 转换为 mm/dd/yyyy
【发布时间】:2018-08-02 09:33:57
【问题描述】:

我有一个用户表单来收集一些要插入到 Excel 工作表中的数据。 其中一个字段是日期,对于我的语言环境,日期始终是 dd/mm/yyyy。

我在表单中输入了一个日期(即 13/08/2018)并调试了我看到的代码:

data_mov = new_mov.data.Value

该值取自我编写的表单。所以它仍然是 13/08/2018。计算结果为 13/08/2018 = 13/08/2018

然后我将值放在特定的单元格中。调试我看到了

Range("A" & riga).Value = data_mov

计算为 2018 年 8 月 13 日 = 2018 年 8 月 13 日

所以单元格存储 08/02/2018。为什么会这样?我没有可以操纵日期的中间代码。我怎样才能防止这种情况发生?

【问题讨论】:

  • 如果您可以选择具有日值或 13 或更高的示例日期以明确哪个日期是哪个日期,那就太棒了。
  • 真的。为清晰起见进行编辑。
  • data_mov是什么类型的变量?
  • 我没有声明变量。我来自一种不需要的语言(PHP)。我应该使用什么类型?
  • 我来自一种没有必要的语言 (PHP) 在 VBA 中也没有必要,但它有助于解决此类问题。 new_mov.data 是什么?

标签: excel vba date


【解决方案1】:

尝试将此行添加到您的代码中:

Range("A" & riga).NumberFormat = "dd/mm/yyyy;@"

它将对您的单元格应用所需的格式。

您也可以使用:

Cells(riga, 1).NumberFormat = "dd/mm/yyyy;@"

【讨论】:

  • Range("A" & riga).Value = data_mov 之后添加它不会改变任何东西
  • 应该改了,是改格式的方法,可以重新检查一下还是试试另一种?
  • @LelioFaieta 你想要的格式是什么?
  • 我希望完全保留插入到输入中的字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多