【问题标题】:Code is converting dates into american format?代码正在将日期转换为美国格式?
【发布时间】:2017-05-28 17:33:45
【问题描述】:

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

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

【问题讨论】:

    标签: excel vba csv date xlsx


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 如果 Excel 在打开文件时已经对其进行了转换,那将无法正常工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多