将许多CSV文件合并为一个Excel文档,保持原始日期格式不变

时间:2014-11-03 15:33:57

标签: excel vba excel-vba csv

我想要将几百个CSV文件合并到一个主工作表中。我设法使用以下方法执行此操作:

Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")


Set dirObj = mergeObj.Getfolder("C:\Users\abc\Documents\Test")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)


Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate


Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub

在我的CSV文件中,A列中的信息是日期。它是使用带有= NOW()公式的用户表单创建的。

但是,当我使用上面的宏进行合并时,日期会混淆其格式。一些改为美国,一些改为欧盟格式。我希望合并信息保留原始格式,因为它显示在原始CSV中。

我可以在我的宏中添加一行以实现此目的吗?

谢谢

(N.B。我不是在寻找一个excel解决方案,而是一个上述代码的解决方案,如果可能的话)

1 个答案:

答案 0 :(得分:0)

尝试更改此行:

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial 

......对此:

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValuesAndNumberFormats