如何在 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 的多功能导入功能使您能够无缝地处理来自各种来源的数据,从而促进数据分析和决策过程。