gpt4 book ai didi

date - Excel VBA - 日期格式自动更改

转载 作者:行者123 更新时间:2023-12-03 03:01:36 25 4
gpt4 key购买 nike

我尝试通过在 Sheets("Sheet1").Cells(17, 3).Value 中的日期添加月份来输入日期值,该值是 01/10/2011,但格式为 Oct-11。然后返回 Sheets("Sheet1").Cells(17, 4).Value = LDate,以显示 Nov-11

sDate = Sheets("Sheet1").Cells(17, 3).Value   --> this shows 01/10/2011 when I hove over sDate
LDate = DateAdd("m", 1, sDate) --> this shows 01/11/2011 when I hove over LDate

然后我想在以下单元格中输入该值 01/11/2011

Sheets("Sheet1").Cells(17, 4).Value = LDate
Selection.NumberFormat = "mmm-yy"

但在单元格中显示 11/01/2011(1 月 11 日),为什么会这样做以及如何解决此问题?

最佳答案

小问题

Selection.NumberFormat = "mmm-yy"

您尚未选择任何内容,因此该格式将放置在您离开光标的位置。

主要问题

您遇到了 Excel 错误,即在将数据传输到工作表时,如果可以的话,它会将日期解释为美国(中端)格式。 “1/11/2011”对于美国人来说就是“11 Jan 11”,所以对于 Excel 来说就是“11 Jan 11”。 “20/11/2011”不是有效的美国日期,因此对于 Excel 来说,它是“20 Nov 11”。

我可以通过将 sDate 和 LDate 声明为字符串来重复您的问题。 DateAdd 可以正确处理字符串,因此 LDate 是正确的,但当放置在单元格中时,它会被误解。

我可以通过将 sDate 和 LDate 声明为日期来解决您的问题:

Dim sdate As Date
Dim Ldate As Date

关于date - Excel VBA - 日期格式自动更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com