代码是将日期转换为美国格式?

时间:2017-01-13 10:58:27

标签: excel-vba date csv formatting xlsx

我有一些代码可以打开我的模板和数据集,并将数据集复制到我的模板工作簿中。简单。显然不是。

我的代码复制完这个数据集后,我注意到我的所有日​​期都被转换为美国格式。有问题的数据集保存为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

2 个答案:

答案 0 :(得分:1)

如果您在代码中打开CSV,Excel会尝试尽可能使用美国设置确定每列中的数据类型。您应该能够通过指定Local:=True方法的Workbooks.Open参数来修复它。

答案 1 :(得分:0)

导入日期时使用CDate,它会将日期转换为您的本地设置。