将csv文件合并到一个工作表中,并获取工作表中每个csv文件的时间戳和文件名

时间:2019-05-15 20:36:04

标签: excel vba

我已经成功合并了多个csv文件。我现在正在尝试获取每个导入的csv文件的文件名和创建的时间戳,并将文件名和创建的时间戳放入特定单元格中的单独工作表中。这将按文件名列出我合并的文件并创建时间戳。

我认为我可以在循环中添加某种类型的代码。我只是不确定用于时间戳和文件名的语法。我不确定是否可以做到这一点?有谁知道我可以添加到循环中的语法或代码,该语法或代码会将每个导入的csv文件的时间戳和文件名单独列出?我尝试了不同的代码,但是它一直崩溃。下面是成功合并多个文件的循环。如有任何疑问,请告诉我。

    Dim wbout   As Workbook
    Dim wsMstr  As Worksheet
    Set wsMstr = ThisWorkbook.Sheets("Sheet1")
    Dim lfileCSV    As String
    Dim fList As String
    Dim fName As String
    Dim fd As FileDialog
    Dim FileChosen As Integer
    Dim FileName As String
    Dim i As Integer
    Dim wbCSVDisplayOrder As Long
    Dim M As Long
    Dim LastRow As Long

    Application.ScreenUpdating = False

    'start the OUT file listing
    fCSV = Dir(fName & "test*.CSV")
    RowInsert = 2

    Do Until fileCSV = ""
        Set wbCSV = Workbooks.Open(fileCSV)
        With wbCSV.Worksheets(1)
            LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
            .Range("A2:FG" & LastRow).Copy
            wsMstr.Range("A" & RowInsert).PasteSpecial xlPasteValues

            Application.DisplayAlerts = False

            wbout.Close False
            Application.DisplayAlerts = True
            RowInsert = RowInsert + LastRow - 1
        End With
        fileCSV = Dir()
    Loop

预期结果将把创建的时间戳和每个导入的csv文件的文件名插入到不同工作表中的单元格中。例如,如果导入了三个csv文件,则每个csv文件的文件名和时间戳将在另一张纸上列出。

谢谢

1 个答案:

答案 0 :(得分:0)

您是否考虑过将Power查询用于此任务? 使用超级查询,您可以从文件夹中获取数据。 进行一些简单的转换。它将结合csv。文件并获取时间戳记