使用宏将csv中的datetime值复制到excel中

时间:2015-03-02 03:04:13

标签: excel vba csv

我试图打开csv文件列表并将数据复制到excel文件的不同电子表格中。 我的脚本如下

Sub importcsv()
    Dim strFile As String
    Dim strCSV As String
    strFile = "D:\15049"
    strCSV = "A4260512_ECRec.csv"
    Workbooks.Open Filename:=strFile & "\" & strCSV
    Range("A1").CurrentRegion.Copy Destination:=Workbooks("test 150302.xlsm").Sheets("test2").Range("A1")
    Workbooks(strCSV).Close
End Sub

我遇到的问题是在我的csv文件中有一个日期时间数据(dd / mm / yyyy hh:mm),当将它们复制到excel时,有些是按照正确的顺序复制,有些则不是。例如,完全复制31/3/1990但复制1/4/1990为4/1/1990。在我的区域设置中,日期格式设置为d / mm / yyyy。

任何人都有任何想法?请帮忙。

谢谢,

2 个答案:

答案 0 :(得分:0)

您是否尝试过设置要复制和粘贴的区域的数字格式?

Worksheets("Sheet1").Columns("A").NumberFormat = "YYYY/MM/DD"

范围和行

Worksheets("Sheet1").Range("A17").NumberFormat = ""
Worksheets("Sheet1").Rows(1).NumberFormat = "hh:mm:ss"

答案 1 :(得分:0)

在打开文件时,您需要将列指定为DMY格式。您可以通过以下两种方式之一完成此操作

  1. 添加与QueryTable的连接 - 手动完成此操作将使用数据功能区/获取外部数据选项卡/从文本
  2. 将文件后缀更改为.txt,然后使用Workbooks.OpenText方法。
  3. 以上两者都提供了指定日期列格式为DMY的选项。