【发布时间】:2015-06-13 17:19:39
【问题描述】:
所有数据都存储在文本文件中。我有多个这样的文件,我想将每个文件导入一个带有文件名的新工作表中。
我录制了一个宏,以便将数据导入到正确的规范中。之后,我添加了对目录中的每个文件重复此过程的部分。
我的代码的结果是它为每个文件创建了一个具有正确名称的新工作表,但工作表是空的。
Sub ImportTextfiles()
Dim folderName As String, filePathName As String, FileName As String
folderName = "C:\Users\MyName\Documents\MultipleFiles\"
FileName = Dir(folderName, vbNormal)
While FileName <> ""
filePathName = folderName & FileName
Sheets.Add.Name = FileName
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & filePathName, _
Destination:=Range("$A$1"))
.Name = FileName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1251
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(37, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, _
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, _
10, 10, 10, 10, 10)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = ","
End With
FileName = Dir()
Wend
End Sub
【问题讨论】:
标签: excel vba import text-files