如何在 Excel 中將文字檔案匯入到單獨的工作表中並保留原始檔名?


Microsoft Excel 以其高效管理和分析大量資料的能力而聞名。當處理包含需要匯入到 Excel 中的單獨工作表並保留原始檔名的多個文字檔案時,此過程可能看起來令人生畏。但是,Excel 提供了一個簡單而強大的解決方案,可以輕鬆完成此任務。

在本文中,我們將逐步指導您瞭解如何將多個文字檔案匯入到多個工作表中的精確技術。這項寶貴的技能可以有效地組織和分析您的資料。掌握這些方法使您能夠無縫地將來自各種文字檔案的資料匯入到 Excel 中,從而在處理大量資料集時節省大量時間和精力。無論您是處理來自各種來源的資料,還是需要合併來自多個文字檔案的資訊,Excel 的多功能匯入功能都將使您能夠簡化工作流程。讓我們深入瞭解在 Excel 中匯入文字檔案的世界,並發現可以增強您的資料管理技能的實用技術。

要啟用 Excel 中的 VBA,請按照以下說明操作

右鍵單擊功能區並選擇“自定義功能區”選項

選中“開發工具”框,然後單擊“確定”

方法 1:使用 VBA 宏透過選擇包含所有所需文字檔案的資料夾來匯入多個文字檔案

如果您熟悉 Excel VBA(Visual Basic for Applications),則可以利用其程式設計功能將多個文字檔案匯入到單獨的工作表中。此方法為處理特定需求提供了靈活性和自定義選項。

  • 步驟 1 − 要在 Excel 中開啟 Visual Basic 編輯器,請按“Alt+F11”組合鍵,或轉到功能區中的“開發工具”選項卡,然後選擇“Visual Basic”選項。

  • 步驟 2 − 在 Visual Basic 編輯器中,單擊“插入”,然後選擇“模組”以插入新模組。

  • 步驟 3 − 在模組中,貼上以下 VBA 程式碼 −

Sub LoadPipeDelimitedFiles()
   'UpdatebyExtendoffice20181010
   Dim xStrPath As String
   Dim xFileDialog As FileDialog
   Dim xFile As String
   Dim xSheetCount As Long
   Dim xWS As Worksheet
    
   On Error GoTo ErrHandler
   Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
   xFileDialog.AllowMultiSelect = True
   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 <> ""
      Set xWS = Sheets.Add(After:=Sheets(Sheets.Count))
      xWS.Name = Left(xFile, Len(xFile) - 4)
      With xWS.QueryTables.Add(Connection:="TEXT;" & xStrPath & "" & xFile, Destination:=xWS.Range("A1"))
         .Name = "a" & xSheetCount
         .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
      End With
      xFile = Dir
      xSheetCount = xSheetCount + 1
   Loop
   Application.ScreenUpdating = True
   Exit Sub
ErrHandler:
   MsgBox "No txt files found.", , "Kutools for Excel"
End Sub

  • 步驟 4 − 選擇“宏”選項卡。

  • 步驟 5 − 選擇可用的宏,然後單擊“執行”。

  • 步驟 6 − 它將開啟一個視窗以選擇包含所有需要匯入的文字檔案的資料夾。選擇資料夾,然後按“確定”。

Excel 將把資料夾中所有文字檔案的資料匯入到單獨的工作表中,每個工作表以相應的檔名命名。

方法 2:使用 VBA 宏透過選擇您想要的檔案來匯入多個文字檔案

  • 步驟 1 − 要在 Excel 中開啟 Visual Basic 編輯器,請按“Alt+F11”組合鍵,或轉到功能區中的“開發工具”選項卡,然後選擇“Visual Basic”選項。

  • 步驟 2 − 在 Visual Basic 編輯器中,單擊“插入”,然後選擇“模組”以插入新模組。

  • 步驟 3 − 在模組中,貼上以下 VBA 程式碼 −

Sub CombineTextFiles()
'updateby Extendoffice
   Dim xFilesToOpen As Variant
   Dim I As Integer
   Dim xWb As Workbook
   Dim xTempWb As Workbook
   Dim xDelimiter As String
   Dim xScreen As Boolean
   On Error GoTo ErrHandler
   xScreen = Application.ScreenUpdating
   Application.ScreenUpdating = False
   xDelimiter = "|"
   xFilesToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Kutools for Excel", , True)
   If TypeName(xFilesToOpen) = "Boolean" Then
      MsgBox "No files were selected", , "Kutools for Excel"
      GoTo ExitHandler
   End If
   I = 1
   Set xTempWb = Workbooks.Open(xFilesToOpen(I))
   xTempWb.Sheets(1).Copy
   Set xWb = Application.ActiveWorkbook
   xTempWb.Close False
   xWb.Worksheets(I).Columns("A:A").TextToColumns _
      Destination:=Range("A1"), DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, _
      ConsecutiveDelimiter:=False, _
      Tab:=False, Semicolon:=False, _
      Comma:=False, Space:=False, _
      Other:=True, OtherChar:="|"
   Do While I < UBound(xFilesToOpen)
      I = I + 1
      Set xTempWb = Workbooks.Open(xFilesToOpen(I))
      With xWb
         xTempWb.Sheets(1).Move after:=.Sheets(.Sheets.Count)
         .Worksheets(I).Columns("A:A").TextToColumns _
         Destination:=Range("A1"), DataType:=xlDelimited, _
         TextQualifier:=xlDoubleQuote, _
         ConsecutiveDelimiter:=False, _
         Tab:=False, Semicolon:=False, _
         Comma:=False, Space:=False, _
         Other:=True, OtherChar:=xDelimiter
      End With
   Loop
ExitHandler:
   Application.ScreenUpdating = xScreen
   Set xWb = Nothing
   Set xTempWb = Nothing
   Exit Sub
ErrHandler:
   MsgBox Err.Description, , "Kutools for Excel"
   Resume ExitHandler
End Sub

  • 步驟 4 − 選擇“宏”選項卡。

  • 步驟 5 − 選擇可用的宏,然後單擊“執行”。

  • 步驟 6 − 它將開啟一個文字檔案視窗。透過按“Ctrl”鍵並單擊所需的檔案來選擇多個文字檔案,然後按“確定”。

Excel 將把文字檔案中的資料匯入到單獨的工作表中,每個工作表以相應的檔名命名。

結論

將文字檔案作為單獨的工作表匯入到 Excel 中並保留原始檔名是一項強大的功能,可以增強您高效管理和分析資料的能力。在本文中,我們探討了兩種實現此任務的方法。第一種方法利用了 Excel 的 Power Query 編輯器,使您可以輕鬆地從多個文字檔案匯入和轉換資料。第二種方法涉及使用 VBA 宏來自動化匯入過程,為特定需求提供自定義選項。

將這些技術整合到您的 Excel 工作流程中,以簡化文字檔案的匯入,節省時間並提高資料管理能力。Excel 的多功能匯入功能使您能夠無縫地處理來自各種來源的資料,從而促進資料分析和決策過程。

更新於: 2023 年 7 月 27 日

186 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告