2014-11-03 57 views
0

我有幾百個CSV文件要合併到一個主工作表中。我設法做到這一點使用以下內容:將許多CSV文件合併到一個Excel文檔中,保持原始日期格式不變

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的解決方案,但上面的代碼的解決方案,如果可能的話)

回答

0

嘗試改變這一行:

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

...對此:

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

謝謝你,但它仍然無法正常工作。例如,一個CSV中的值是9月12日(2014年9月12日),但在合併的Excel中,更改爲12月9日(09/12/14)。我有我的區域(在多個地方檢查)設置爲英國區域設置。任何其他提示? – AliLum 2014-11-03 16:48:03

相關問題