【发布时间】:2014-11-10 20:00:08
【问题描述】:
我有一个 vba 代码可以将多个 txt 文件导入 excel。每个 txt 文件都包含几行以 # 开头的行。这几行我想跳过并在第一行开始导入,没有#。
我用来导入文件的代码如下:
Sub Import_Text_Files()
Dim sPath As String
Dim oPath, oFile, oFSO As Object
Dim r, iRow As Long
Dim wbImportFile As Workbook
Dim wsDestination As Worksheet
sPath = "C:\txt-files\"
Set wsDestination = ThisWorkbook.Sheets("Daten")
i = 1
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oPath = oFSO.GetFolder(sPath)
Application.ScreenUpdating = False
For Each oFile In oPath.Files
r = 4
If LCase(Right(oFile.Name, 4)) = ".txt" Then
Workbooks.OpenText fileName:=oFile.Path, Origin:=65001, StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Set wbImportFile = ActiveWorkbook
For iRow = 1 To wbImportFile.Sheets(1).UsedRange.Rows.Count
wbImportFile.Sheets(1).UsedRange.Rows(iRow).Copy wsDestination.Cells(r, i)
r = r + 1
End If
Next iRow
wbImportFile.Close False
Set wbImportFile = Nothing
End If
i = i + 7
Next oFile
End Sub
我尝试使用INSTR,但没有成功。
谁能帮帮我?
【问题讨论】:
-
为什么不全部导入excel,如图here,然后在excel中使用自动过滤器删除所有以“#”开头的行会比遍历文本文件中的每一行要快得多?跨度>
-
查看我在上面评论中提到的链接中的
Open the text file in memory部分 -
谢谢,我试试这个!