我想要将几百个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解决方案,而是一个上述代码的解决方案,如果可能的话)
答案 0 :(得分:0)
尝试更改此行:
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
......对此:
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValuesAndNumberFormats