从一个Excel应用程序复制到工作表而不更改日期VBA EXCEL

时间:2017-07-26 23:01:20

标签: excel vba excel-vba

我正在尝试使用以下代码将整张工作表从一个应用程序表复制到另一个应用程序表

'Open Application
MsgBox "Select Report"
Dim my_FileName3 As Variant
my_FileName3 = Application.GetOpenFilename("Excel Files (*.xl*)," & _
    "*.xl*", 1, "Select ManMan File", "Open", False)
If my_FileName <> False Then
 Workbooks.Open Filename:=my_FileName3
End If

'Set Active
var3 = ActiveWorkbook.Name

'Copy Everything
 Dim lastRow3 As Long
 lastRow3 = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
 ActiveSheet.Range("a1:z" & lastRow3).Copy Destination:=Workbooks   (var1).Sheets("Sheet4").Range(Var1R)

'Close Worksheet
 Workbooks(var3).Close False

上面的代码有效,但问题是日期已经完全改变了。

First Document Worksheet Before copy

Second Application Sheet4 After copy

知道我可能做错了什么吗?忽略空行。

1 个答案:

答案 0 :(得分:1)

日期的差异可以通过两个工作簿之间日期系统的不一致使用来解释。一个将使用1904年日期系统,一个将不会:

enter image description here

如果目标工作簿使用1904日期系统,则需要从复制的每个值中减去1462,以便将其转换回您开始使用的相同日期。