我有一些代码可以打开我的模板和数据集,并将数据集复制到我的模板工作簿中。简单。显然不是。
我的代码复制完这个数据集后,我注意到我的所有日期都被转换为美国格式。有问题的数据集保存为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
答案 0 :(得分:1)
如果您在代码中打开CSV,Excel会尝试尽可能使用美国设置确定每列中的数据类型。您应该能够通过指定Local:=True
方法的Workbooks.Open
参数来修复它。
答案 1 :(得分:0)
导入日期时使用CDate
,它会将日期转换为您的本地设置。