【发布时间】:2013-10-24 23:39:33
【问题描述】:
我有这个宏可以在同一个文件夹中包含 100 多个 .txt 文件的 excel 电子表格中批量导入:
Sub QueryImportText()
Dim sPath As String, sName As String
Dim i As Long, qt As QueryTable
With ThisWorkbook
.Worksheets.Add After:= _
.Worksheets(.Worksheets.Count)
End With
ActiveSheet.Name = Format(Now, "yyyymmdd_hhmmss")
sPath = "C:\Users\TxtFiles\"
sName = Dir(sPath & "*.txt")
i = 0
Do While sName <> ""
i = i + 1
Cells(1, i).Value = sName
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sPath & sName, Destination:=Cells(2, i))
.Name = Left(sName, Len(sName) - 4)
.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 = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
sName = Dir()
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next
Loop
End Sub
每个 .txt 文件具有相同的结构: 标题、ID、日期、createdBy、文本。
宏正在运行,但是:
- 我希望每个文件都在一行中(这个宏在列中显示它们)
此 excel 将通过导出为 .csv 将它们导入我的 joomla 网站与 MySql
非常感谢您的帮助!
【问题讨论】:
-
尽管您提到了结构,但我可以看到文本文件的屏幕截图/示例。我想在发布解决方案之前测试我的代码。
-
感谢您的帮助悉达多!这是 .txt 中的一个:“IN TORONTO!”、“15”、“2012-11-25 14:12:43”、“Arone”、“我希望每个文件都排成一行,但我的文本包含将我的文本分成不同单元格的
HTML 标记。对此有任何想法吗?" -
如果您不介意,可以上传到任何文件共享网站并在此处共享链接吗?我无法在 cmets 中获得太多。
-
这是文件:wikisend.com/download/561730/018.txt。感谢您的宝贵时间!
-
文件好像损坏了?