为什么为单元格赋值会将值更改为美国日期格式?

时间:2014-01-24 14:13:26

标签: excel-vba excel-2010 vba excel

我想解释为什么发生以下情况(我发现了一些提供部分解决方法的问题,但没有一个解释发生了什么)。 到目前为止,我可以确定所有区域设置都是英国:

将单元格A1格式化为文本并输入:     03/01/2014 16:00

当我运行Sub

Sub TestSub()
MsgBox Format(Range("A1").Value, "DD MMM YYYY")
Range("A2").Value = Range("A1").Value
MsgBox Format(Range("A2").Value, "DD MMM YYYY")
End Sub

我得到 2014年1月3日然后 2014年3月1日 - VBA明显'知道'该值是1月3日,我将其取出细胞,当它重新进入时发生了什么?

奖励积分:我可以让它停止,或者如果没有,那么将值作为日期分配给另一个单元格而不会在3月结束?

1 个答案:

答案 0 :(得分:0)

这会让你不在三月吗?

Sub TestSub()
    MsgBox Format(Range("A1").Value, "DD MMM YYYY")
    Range("A1").Copy Range("A2")
    MsgBox Format(Range("A2").Value, "DD MMM YYYY")
End Sub