【问题标题】:Why does assigning a value to a cell change the value to american date format?为什么为单元格赋值会将值更改为美国日期格式?
【发布时间】:2014-01-24 14:13:25
【问题描述】:

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

将单元格 A1 格式化为文本并输入: 2014 年 3 月 1 日 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 月结束?

【问题讨论】:

    标签: excel excel-2010 vba


    【解决方案1】:

    这会让你远离三月吗??

    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
    

    【讨论】:

    • 嗯,是的 - 它复制了整个单元格。我想知道为什么在单元格之间分配值(并在途中从文本转换为日期)穿越大西洋!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2021-11-18
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多