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

Vba 将多个CSV文件合并到一个Excel文档中,保持原始日期格式不变,vba,excel,csv,Vba,Excel,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.FileSys

我有几百个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中所示

是否有一行我可以添加到我的宏中以实现这一点

多谢各位


(注意,我不是在寻找excel解决方案,而是针对上述代码的解决方案,如果可能的话)

尝试更改此行:

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial 
……为此:

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

谢谢你,但还是没用。例如,一个CSV中的值为9月12日(2014年9月12日),但在合并的excel中get更改为12月9日(2014年12月9日)。我已将我的区域(在多个位置检查)设置为UK语言环境。还有其他建议吗?