将工作表复制到新工作簿时出现奇怪的日期变化

Cal*_*rns 1 excel vba

当我使用以下代码创建带有复制工作表的新工作簿时,会发生奇怪的日期更改:

Worksheets("Week Template").Copy
Set Newwb = ActiveWorkbook
NewwbName = ActiveWorkbook.Name

Windows("Mainworkbook.xlsm").Activate
Sheets("Week Template").Select
    Range("B3:B13").Select
    Application.CutCopyMode = False
    Selection.Copy

Workbooks(NewwbName).Worksheets("Week Template").Activate
Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Run Code Online (Sandbox Code Playgroud)

例如,如果我复制日期“1/1/2023”,它将更改为“12/31/2018”

但是,当我将单元格格式更改为文本时,数字是相同的“43465”

有谁知道我该如何解决这个问题?

Ron*_*eld 5

差异是由于您的一本工作簿(日期较晚的工作簿)设置为使用 1904 日期系统。

MAC上一般默认使用1904日期系统,Windows下默认使用1900日期系统。

这可以在文件/Excel选项/高级/计算此工作簿时进行设置:

在此输入图像描述

您可以使用 Workbook.Date1904 属性来确定工作簿设置,并对值进行适当的调整以保持日期相同。