Note: The other languages of the website are Google-translated. Back to English

如何在Excel中快速批量導入多個csv / text / xml文件?

在Excel中,您可能不得不將工作簿另存為csv文件,文本文件或xml文件,但是您是否曾經嘗試過將多個csv / text / xml文件從一個文件夾導入到工作簿或工作表中? 在本文中,我介紹了一些快速批量導入它們的方法。

使用VBA將文件夾中的多個文本文件導入到工作簿的每個工作表中

使用VBA將文件夾中的多個csv文件導入到一張工作表中

使用VBA將一個文件夾中的多個xml文件導入到一張工作表中

使用Kutools for Excel將多個xml / csv文件導入或合併到工作表或工作簿中 好主意3

使用Kutools for Excel將每張工作表導出為csv / text / pdf到一個文件夾好主意3


要將文本文件從文件夾導入到工作簿中,可以使用VBA下面的命令對其進行快速處理。

1.啟用空白工作簿,然後按 Alt + F11鍵 打開鑰匙 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將VBA粘貼到 模塊 窗口。

VBA:將所有文本文件從文件夾導入到工作簿中

Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\*.txt")
    Do While xFile <> ""
        xCount = xCount + 1
        Sheets(xCount).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & xStrPath & "\" & xFile, Destination:=Range("A1"))
            .Name = "a" & xCount
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            xFile = Dir
        End With
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files txt", , "Kutools for Excel"
End Sub

3。 按 F5 鍵或 按鈕以運行VBA,並在彈出對話框中選擇要從中導入文本文件的文件夾。 看截圖:

doc導入多個csv文本xml 1

4.然後點擊 OK,並且所選文件夾中的每個文本文件都已導入到活動工作簿的一個工作表中。 看截圖:

doc導入多個csv文本xml 2doc導入多個csv文本xml 3

輕鬆地將多個工作表/工作簿合併為一個工作表或工作簿

在Excel中,將多個工作表或工作簿組合成一個工作表或工作簿可能很麻煩,但是使用 結合 在Kutools for Excel中,您可以將數十個工作表/工作簿合併到一個工作表或工作簿中,也可以通過單擊幾下將工作表合併為一個工作表。  點擊查看全功能 30 天免費試用!
合併表
 
Kutools for Excel:擁有超過 300 個方便的 Excel 加載項,免費試用,不受限制 30 天。

要將所有csv文件從一個文件夾導入到一張紙中,可以使用以下VBA代碼。

1.啟用空白工作表,然後按 Alt + F11鍵 打開鑰匙 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後在VBA下面粘貼到新 模塊 窗口。

VBA:將csv文件從一個文件夾導入到一個工作表中

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Columns(1).Insert xlShiftToRight
        Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub

3。 按 F5 鍵或單擊 按鈕執行VBA,然後彈出一個對話框,選擇要從其中導入所有csv文件的文件夾。 看截圖:

doc導入多個csv文本xml 4

4。 點擊 OK,然後會彈出一個對話框,提醒您在導入之前是否清除了活動工作表的內容,請點擊此處。 看截圖:

doc導入多個csv文本xml 5

點擊後 ,所選文件夾中的所有csv文件都將導入到當前工作表中,並將數據從A列向右放置。 看截圖:

doc導入多個csv文本xml 6doc導入多個csv文本xml 7

小提示: 如果要將csv文件水平放置在工作表中,可以在VBA下面使用。

Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
        xSht.UsedRange.Clear
        xCount = 1
    Else
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    End If
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Rows(1).Insert xlShiftDown
        Range("A1") = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
        xWb.Close False
        xFile = Dir
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub 

doc導入多個csv文本xml 8


如果要將所有XML文件從一個文件夾導入到一張紙中,則可以使用以下VBA代碼。

1.選擇要放置導入數據的空白表,然後按 Alt + F11鍵 啟用鍵 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,將VBA代碼粘貼到 模塊 窗口。

VBA:將XML文件從文件夾導入到工作表中。

Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
    Dim xWb As Workbook
    Dim xSWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    Set xSWb = ThisWorkbook
    xCount = 1
    xFile = Dir(xStrPath & "\*.xml")
    Do While xFile <> ""
        Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
        xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
        xWb.Close False
        xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
        xFile = Dir()
    Loop
    Application.ScreenUpdating = True
    xSWb.Save
    Exit Sub
ErrHandler:
    MsgBox "no files xml", , "Kutools for Excel"
End Sub

3。 點擊 按鈕或 F5 鍵運行VBA,然後在彈出的對話框中選擇一個文件夾,請參見屏幕截圖:

doc導入多個csv文本xml 9

4。 點擊 OK,並將所選文件夾中的所有XML文件導入到活動工作表中。


如果您不熟悉VBA,請放心,在這裡,我介紹一個方便的工具– Excel的Kutools 為了你。 憑藉其強大 結合 實用程序,您可以將多個xml文件或csv文件快速組合到一個工作簿或一個Excel工作表中。

Excel的Kutools, 與以上 300 方便的功能,使您的工作更加輕鬆。 

安裝後 Kutools for Excel,請執行以下操作:(立即免費下載Kutools for Excel!)

1. Active Excel,然後單擊 Kutools 加 > 結合。 查看截圖:
doc合併1

2.在 合併的第一步 對話框中,根據需要選擇一個分離選項。 看截圖:
doc合併2

3。 點擊 下一頁 合併的第2步點擊此處成為Trail Hunter 加入 將文件從多個文件夾添加或將文件從一個文件夾添加到 工作簿 列表,還可以指定要從中合併的圖紙 下載學習單 右側部分列表。 看截圖:
doc kutools組合紙3

4。 點擊 下一頁 到最後一步 結合,然後您可以指定合併選項。
doc kutools組合紙4

5。 點擊,會彈出一個對話框,提醒您選擇一個位置來保存新的合併結果。 看截圖:
doc合併5

6。 點擊 節省。 所有添加的工作表都已合併為一個新的工作表。
doc合併6

小提示: 這款獨特的敏感免洗唇膜採用 Moisture WrapTM 技術和 Berry Mix ComplexTM 成分, 結合,您也可以將多個 CSV文件 在一個工作表或工作簿中形成多個文件夾或一個文件夾。


如果要將每張工作表作為csv / text / pdf文件導出到文件夾, Excel的Kutools拆分工作簿 實用程序可以幫您一個忙。

免費安裝 Kutools for Excel,請執行以下操作:

1.啟用要導出其工作表的工作簿,然後單擊 Kutools 加 > 工作簿 > 拆分工作簿。 看截圖:

doc導入多個csv文本xml 10

2。 在裡面 拆分工作簿 對話框中,您可以檢查需要導出的工作表名稱,默認情況下,所有工作表均已選中,然後檢查 指定保存格式 然後從下拉列表中選擇要另存為的文件格式。 看截圖:

doc導入多個csv文本xml 11

3。 點擊 分裂 然後選擇一個文件夾將拆分文件保存在 瀏覽文件夾 對話框,請參見屏幕截圖:

doc導入多個csv文本xml 12

4。 點擊 OK,現在所有選中的工作表都將作為新文件格式導出到所選文件夾中。


相關文章:


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (36)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
您好,非常感謝您提供這些代碼示例! 第一個(VBA:將文件夾中的所有文本文件導入工作簿)幾乎正是我所需要的。 但是,我想選擇要導入的文件,而不是自動導入任何給定文件夾中的所有文本文件。 我還希望目標工作表的現有內容被文本文件的內容覆蓋。 (使用上面的代碼,現有內容被向右移動而不是被替換。)我該怎麼做? 提前致謝!
網站主持人對此評論進行了最小化
嗨,我想了解“使用 VBA 將文件夾中的多個 Xml 文件導入單個工作表”的 VBA 代碼。 1. 為什麼需要 2 個工作簿而不是 1 個? 2. 將很多xml文件加載到excel中需要一些時間,那麼有沒有更高效的代碼? 因為我意識到當您的代碼運行時,會創建許多 VBA 工作簿,這會導致速度變慢。 如果您能幫助我理解,我將不勝感激!
網站主持人對此評論進行了最小化
對不起,我沒看懂你的第一個問題,關於第二個,更有效的代碼,我沒有找到它,如果你知道,請給我留言,謝謝。
網站主持人對此評論進行了最小化
嗨,我想通過下一個可用行(非水平行)了解“將多個 .txt 文件從文件夾導入到帶有 VBA 的單個工作表”的 VBA 代碼。 請幫忙,急
網站主持人對此評論進行了最小化
您好,如果您想將一個文件夾中的所有 txt 文件導入到單個工作表中,您可以先使用上述 vba 代碼將 txt 文件導入工作簿,然後應用 Kutools for Excel 的合併工作表功能將工作簿的所有工作表合併到一張紙,然後是一張紙中的txt文件。 希望它可以幫助你。
網站主持人對此評論進行了最小化
問題在於 VBA 命令和 Kutools 都允許導入具有字符代碼格式的 csv 文件。 預載是西方的。 我需要將所有 csv 文件導入為 unicode-8
網站主持人對此評論進行了最小化
從 txt 文件轉換的代碼對我不起作用。
網站主持人對此評論進行了最小化
對不起,這篇文章不適合你。 你能描述你的問題嗎? 運行代碼時會發生什麼? 你工作的系統是什麼?
網站主持人對此評論進行了最小化
你好! 代碼“將文件夾中的 csv 文件導入到一個工作表中”對我有用! 但是此代碼不適用於空的 .txt 文件。 有什麼方法可以保留空文件嗎?
網站主持人對此評論進行了最小化
不好意思,不知道為什麼要導入一個空的txt.file~就插入空行來分隔內容。
網站主持人對此評論進行了最小化
Mike:“從 txt 文件轉換的代碼對我不起作用。”

我遇到了同樣的問題。如果您要打開的 txt 文件多於工作簿中的工作表(默認為 3),則會出現宏錯誤。
我通過在循環退出之前添加以下內容來修復它,以便宏在其餘部分之後創建一個新工作表
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
網站主持人對此評論進行了最小化
乍得,這對我導入多個文本文件非常有用。 謝謝你。

你知道是否有辦法提取文件名嗎? 我希望將文本文件名複製到每個 Excel 工作表選項卡中。
網站主持人對此評論進行了最小化
完全令人驚嘆! 嘗試在一個工作表中打開所有 csv 文件,效果很好。 非常感謝,真的!
網站主持人對此評論進行了最小化
您好,我嘗試運行 .xml 的代碼,但它似乎沒有工作,因為我收到消息“沒有文件 xml”。 如何解決這個問題?
網站主持人對此評論進行了最小化
當您選擇的文件夾不包含 xml 文件時,它將彈出一條消息“無文件 xml”。 運行代碼以將它們導入到活動工作表後,您可以在彈出對話框中選擇包含 xml 文件的正確文件夾。
網站主持人對此評論進行了最小化
有效! 謝謝
網站主持人對此評論進行了最小化
你好,saya mau tanya kalo impor txt file ke satu sheet gimana ya?
網站主持人對此評論進行了最小化
您好,rendy,您要將所有 txt 導入一張紙還是將每個 txt 導入每張紙?
網站主持人對此評論進行了最小化
我有代碼將 txt 導入到工作表每個 txt 到每個工作表,但我希望每個 txt 都以其名稱導入工作表,我的意思是用附加代碼文件的 txt 的名稱重命名每個導入的工作表.. 我想編輯這個文件以添加用於重命名具有 txts 名稱的工作表的代碼...謝謝。
網站主持人對此評論進行了最小化
我有代碼將 txt 導入工作表每個 txt 到每個工作表,但我希望每個 txt 都以其名稱導入工作表,我的意思是用附加代碼文件的 txt 名稱重命名每個導入的工作表.. 謝謝
網站主持人對此評論進行了最小化
您好,Ramy,zahran,您可以嘗試以下代碼,該代碼可以導入文本文件並將工作表名稱重命名為文本文件名。
子 LoadPipeDelimitedFiles()
'更新通過Extendoffice20180925
將 xStrPath 調暗為字符串
將 xFileDialog 調暗為 FileDialog
將 xFile 調暗為字符串
調暗 xCount 一樣長
將 xWS 調暗為工作表

出錯時轉到 ErrHandler
設置 xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 假
xFileDialog.title = "選擇一個文件夾 [Kutools for Excel]"
如果 xFileDialog.Show = -1 那麼
xStrPath = xFileDialog.SelectedItems(1)
如果結束
如果 xStrPath = "" 則退出 Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
執行 xFile <> ""
xCount = xCount + 1
設置 xWS = Sheets(xCount)
xWS.選擇
xWS.Name = "TEXT" & Left(xFile, Len(xFile) - 4)
使用 ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, 目的地:=Range("A1"))
.Name = "a" & xCount
.FieldNames = 真
.RowNumbers = 假
.FillAdjacentFormulas = 假
.PreserveFormatting = True
.RefreshOnFileOpen = 假
.RefreshStyle = xlInsertDeleteCells
.SavePassword = 假
.SaveData = 真
.AdjustColumnWidth = 真
.RefreshPeriod = 0
.TextFilePromptOnRefresh = 假
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = 假
.TextFileTabDelimiter = 假
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = 假
.TextFileSpaceDelimiter = 假
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = 數組(1, 1, 1)
.TextFileTrailingMinusNumbers = 真
.刷新背景查詢:=假
xFile = 目錄
結束
循環
Application.ScreenUpdating = True
退出小組
錯誤處理程序:
MsgBox "沒有文件 txt", , "Kutools for Excel"
END SUB
網站主持人對此評論進行了最小化
你好! 我使用代碼將多個 XML 文件合併為一個,但不幸的是,這些列搞砸了。 被合併的 5 個文件都具有相同的格式。 有沒有什麼辦法解決這一問題? 我還想知道是否有辦法擺脫文件合併時重複的標題。 謝謝!
網站主持人對此評論進行了最小化
謝謝你。 這個網站幫了大忙。 我有一個我無法弄清楚的問題。 我正在嘗試將多個 csv 文件導入 excel 中的單獨工作表,並在 csv 文件的文件名之後重命名每個工作表。 我知道下面介紹了一個 txt 文件,但我正在使用 csv 文件。 提前致謝。
網站主持人對此評論進行了最小化
嗨 - 我正在使用將所有 csv 文件導入上面列出的一個文件“使用 VBA 將多個 Csv 文件從文件夾導入單個工作表” - 我想定義它收集數據的文件夾,而無需手動選擇它。 這可以做到嗎? 謝謝-西南。
網站主持人對此評論進行了最小化
嗨,Scott W,我發現一個 VBA 代碼可以幫助你。
Option Explicit

子 ImportCSVsWithReference()
'作者:傑里·博凱爾
'日期:10 年 16 月 2010 日
'摘要:將文件夾中的所有 CSV 文件導入到單個工作表中
' 在列 A 中添加一個字段,列出 CSV 文件名

將 wbCSV 調暗為工作簿
將 wsMstr 調暗為工作表:設置 wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" ' CSV 文件的路徑,包括最後的 \
將 fCSV 調暗為字符串

if MsgBox("導入前清除現有工作表?", vbYesNo, "清除?") _
= vbYes 然後 wsMstr.UsedRange.Clear

Application.ScreenUpdating = False '加速宏

fCSV = Dir(fPath & "*.csv") '開始 CSV 文件列表

在 Len(fCSV) > 0 時執行
'打開一個 CSV 文件
設置 wbCSV = Workbooks.Open(fPath & fCSV)
'插入 col A 並添加 CSV 名稱
列(1).插入 xlShiftToRight
列 (1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'複製日期到主表並關閉源文件
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.關閉 False
'準備下一個 CSV
fCSV = 目錄
循環

Application.ScreenUpdating = True
END SUB
網站主持人對此評論進行了最小化
如何消除重複的標題和 CSV 文件名列。 請幫忙....我已經閱讀了幾篇文章,但不幸的是所有文章都給出了相同的結果。
網站主持人對此評論進行了最小化
您好 - 我使用您的 VBA 代碼從多個 CSV 文件中提取數據到 excel 文件(此頁面上的代碼)並將 csv 文件轉換為 excel 文件(這個: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html),效果很好。 他們幫我節省了很多時間。

但是,我注意到這兩種類型的代碼都有一個共同的問題。 澄清一下,我的系統設置為使用歐洲標準的日期,而我收到的一些 CSV 文件包含美國標準的日期。 第一個問題是,當我從包含美國格式日期的 CSV 文件中提取或轉換數據時,所有這些日期都會反轉(與我的系統使用的歐盟標準相匹配)。 這很好,但也給我帶來了麻煩,因為我不知道代碼會為我顛倒日期,所以我繼續做同樣的事情。 第二個問題是,對於已經包含與我的系統(歐盟標準)使用的日期格式相同的日期的 CSV 文件,只有不明確的日期被反​​轉(即 04/05/2019 - 05/04/2019),而那些太明顯的則保持不變(即 30 年 04 月 2019 日)。

我希望代碼執行的操作與此處顯示的完全相同,只是它們應以原始文件中使用的確切格式複制和粘貼數據(尤其是日期)。 這將有助於防止任何可能的混淆和錯誤。 我想學習 VBA,以便有一天我可以編寫自己的代碼,但現在,我什至無法修改現有代碼的一部分以滿足我的需要。 因此,如果您可以提供幫助,請告訴我應該將修改後的代碼(您想出的)放在現有代碼的哪個位置。 我感謝我能得到的所有反饋和支持。 謝謝你們!
網站主持人對此評論進行了最小化
嗨 Marshall,在 Workbooks.Open 方法中,添加選項 Local:=True。


設置 xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
網站主持人對此評論進行了最小化
非常感謝羅伯特。 對不起,我不能更早地回复你。 直到現在我都沒有收到任何通知。 我會試試這個,稍後再回复你,讓你知道這是否有效。
網站主持人對此評論進行了最小化
羅伯特,
又是我。 我花了一段時間才真正有時間弄清楚應該將“Local:True”部分添加到代碼的哪一部分。 結果很好,因為日期不再顛倒。 謝謝!
對於任何有同樣問題的人,只需更改此行:
設置 xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

為此:
設置 xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
網站主持人對此評論進行了最小化
嗨,有什麼方法可以導入多個以分號作為分隔符的 csv 文件? 謝謝!
PS 好文章!
網站主持人對此評論進行了最小化
你好團隊

我正在使用代碼通過 VBA 將多個 XML 文件導入單個工作表,但是我面臨的問題是當行數達到大約 650000 時,它不會處理文件夾中的其餘 xml 文件並給出沒有 xml 文件的錯誤. 需要您的支持以增加此數量。
網站主持人對此評論進行了最小化
嗨,專家

我正在使用上述代碼使用 VBA 將多個 xml 文件導入到 1 個工作表中,但是我面臨的問題是當工作表中的行數達到 650000 時,此代碼不會處理文件夾中的其餘 xml 文件。 它給出了一個錯誤“no files.xml”。 需要您的善意支持
網站主持人對此評論進行了最小化
您好將多個 xmls 導入 excel 文檔的一個選項卡的說明有效,但想知道如何讓它排列列。 我的 xmls 並不都有相同的標籤。 它們的設置使得如果 xml 沒有某些標頭(標籤)的數據,則該 xml 中缺少標頭。 有沒有辦法讓 xmls 導入,以便每個 xml 和相關數據的相同標題落入 excel 的同一列?
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護