Excel 如何将文本文件导入到Excel中作为单独的工作表并使用原始名称在Excel中
Microsoft 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的多功能导入功能使您能够无缝地使用来自各种来源的数据,促进数据分析和决策过程。