代码正在将日期转换为美国格式?
Code is converting dates into american format?
我有一些代码可以打开我的模板和数据集并将数据集复制到我的模板工作簿中。简单的。显然不是。
在我的代码复制这个数据集之后,我注意到我所有的日期都被转换成美国格式。有问题的数据集保存为 CSV,因为这是它在数据库中的调度方式。
我的计划是将数据更改为 XLSX 格式,因为这似乎可以解决问题。但它并没有解释为什么它首先发生,有什么想法吗?
Dim TemplateWB As Workbook
Dim DataWB As Workbook
'Set Dim and Open files
Set TemplateWB = Workbooks.Open(TemplateFull) 'TemplateFull links to my template file
Set DataWB = Workbooks.Open(DataFull) 'DataFull links to my dataset
'Make sure sheet is visible within template
TemplateWB.Sheets("Data_1").Visible = xlSheetVisible
TemplateWB.Sheets("Data_1").Activate
'Remove any data contained within template
InitialLastRow = Cells(Rows.Count, 1).End(xlUp).Row
InitialLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(2, 1).Resize(InitialLastRow, InitialLastColumn).ClearContents
'Select new dataset
DataWB.Sheets("Data_1").Activate
NewLastRow = Cells(Rows.Count, 1).End(xlUp).Row
NewLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(1, 1).Resize(NewLastRow, NewLastColumn).Copy Destination:=TemplateWB.Sheets("Data_1").Range("A1")
'Save template and close
Workbooks(DataFileName).SaveAs (ArchiveFull & Year(Now()) & "_" & Month(Now()) & "_" & Day(Now()) & ".csv")
Workbooks(ArchiveFileName & Year(Now()) & "_" & Month(Now()) & "_" & Day(Now()) & ".csv").Close
如果您在代码中打开 CSV,Excel 会尝试尽可能使用 US 设置来确定每列中的数据类型。您应该能够通过指定 Workbooks.Open
方法的 Local:=True
参数来修复它。
导入日期时使用CDate
,它会将日期转换为您的本地设置。
我有一些代码可以打开我的模板和数据集并将数据集复制到我的模板工作簿中。简单的。显然不是。
在我的代码复制这个数据集之后,我注意到我所有的日期都被转换成美国格式。有问题的数据集保存为 CSV,因为这是它在数据库中的调度方式。
我的计划是将数据更改为 XLSX 格式,因为这似乎可以解决问题。但它并没有解释为什么它首先发生,有什么想法吗?
Dim TemplateWB As Workbook
Dim DataWB As Workbook
'Set Dim and Open files
Set TemplateWB = Workbooks.Open(TemplateFull) 'TemplateFull links to my template file
Set DataWB = Workbooks.Open(DataFull) 'DataFull links to my dataset
'Make sure sheet is visible within template
TemplateWB.Sheets("Data_1").Visible = xlSheetVisible
TemplateWB.Sheets("Data_1").Activate
'Remove any data contained within template
InitialLastRow = Cells(Rows.Count, 1).End(xlUp).Row
InitialLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(2, 1).Resize(InitialLastRow, InitialLastColumn).ClearContents
'Select new dataset
DataWB.Sheets("Data_1").Activate
NewLastRow = Cells(Rows.Count, 1).End(xlUp).Row
NewLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(1, 1).Resize(NewLastRow, NewLastColumn).Copy Destination:=TemplateWB.Sheets("Data_1").Range("A1")
'Save template and close
Workbooks(DataFileName).SaveAs (ArchiveFull & Year(Now()) & "_" & Month(Now()) & "_" & Day(Now()) & ".csv")
Workbooks(ArchiveFileName & Year(Now()) & "_" & Month(Now()) & "_" & Day(Now()) & ".csv").Close
如果您在代码中打开 CSV,Excel 会尝试尽可能使用 US 设置来确定每列中的数据类型。您应该能够通过指定 Workbooks.Open
方法的 Local:=True
参数来修复它。
导入日期时使用CDate
,它会将日期转换为您的本地设置。