导入多个文本文件Excel VBA时标记工作表

时间:2013-07-26 22:01:12

标签: excel text excel-vba import vba

我一直在尝试将多个大型文本文件导入到同一工作簿中的多个电子表格中。感谢本网站上的其他帖子,我拼凑了一些似乎可以完成这项工作的VBA代码。唯一的问题是,由于数据在文本文件中未标记,因此很难将它们分开进行分析。因此,我想在导入过程中使用相应的文本文件标记每个电子表格。我正在使用的代码如下。

谢谢!

Sub ImportManyTXTs()
Dim strFile As String
Dim ws As Worksheet
strFile = Dir("I:\test\*.txt")
Do While strFile <> vbNullString
Set ws = Sheets.Add
With ws.QueryTables.Add(Connection:= _
    "TEXT;" & "I:\test\" & strFile, Destination:=Range("$A$1"))
    .Name = strFile
    .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 = xlFixedWidth
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1, 1)
    .TextFileFixedColumnWidths = Array(7, 9)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
strFile = Dir
Loop
End Sub

编辑:管理以解决问题。在End With之后添加了ws.Name = strFile。似乎工作得很好。

1 个答案:

答案 0 :(得分:1)

管理解决问题。在End With之后添加了ws.Name = strFile。似乎工作得很好。