格式化方法失败

时间:2015-06-02 14:11:04

标签: excel vba

如果我将此字符串作为方法format的输入: "07/11/2009 00:33:22“格式为:"yyyy/mm/dd hh:mm:ss"然后我得到: 2009-07-11 00:33:22

为什么月份与天交换?如何解决?

2 个答案:

答案 0 :(得分:0)

实际上月份和日期不会在输出中交换,但是输入的格式是误导性的。在单元格中尝试=month("07/11/2009 00:33:22"),查看原始数据中的月份和日期。

如果你的输入来自作为数据存储的范围,那么它实际上是7月11日。

如果您的输入是来自任何来源的字符串,请查找您的电脑(控制面板)的区域设置以更改默认设置。

更新

要确保您的文字以相同的方式转换为日期,无论您的区域设置如何使用此公式:
=date(mid(A1,7,4),mid(A1,4,2),mid(A1,1,2)) + time(mid(A1,12,2),mid(A1,15,2),mid(A1,18,2))

答案 1 :(得分:-1)

假设您输入的是2009年11月7日:

Format: "yyyy/dd/mm hh:mm:ss"

这将为您提供2009/07/11等。

编辑:由于有人在没有任何解释的情况下进行投票,并且因为OP现在似乎决定了输入的顺序:

假设输入2009年7月11日:

Format: "yyyy/mm/dd hh:mm:ss"

这将为您提供2009/07/11等。

将自定义格式设置为单元格,选定的单元格或整个行或列将覆盖区域设置。如果这不起作用,可能是因为格式化没有被强制更新。

应用格式后,选择受影响的范围或行/列,转到“数据”选项卡,然后单击“文本到列”。取消选中任何可选复选框,然后按照向导的其余部分进行操作。格式化现在将在所有选定的单元格中更新。