excel vba-将.txt(制表符删除)文件的文件夹导入下一行
我一直在绞尽脑汁试图在excel中创建一个宏,它可以打开特定文件夹中的所有.txt文件,并将它们导入下一行。数据以制表符分隔,第一个文件需要导入单元格B8、下一个文件B9、下一个B10等 我对这段代码的理解是80%,但它将所有数据导入一个单元格(B8),而不是以制表符分隔的行(B8、C8、D8、E8等)excel vba-将.txt(制表符删除)文件的文件夹导入下一行,excel,vba,Excel,Vba,我一直在绞尽脑汁试图在excel中创建一个宏,它可以打开特定文件夹中的所有.txt文件,并将它们导入下一行。数据以制表符分隔,第一个文件需要导入单元格B8、下一个文件B9、下一个B10等 我对这段代码的理解是80%,但它将所有数据导入一个单元格(B8),而不是以制表符分隔的行(B8、C8、D8、E8等) 我建议继续您在评论中提到的操作,使用Workbooks.OpenText打开每个文件,然后将打开的工作簿中的每一行复制到指定的工作表中 Sub Read_Text_Files() Dim
我建议继续您在评论中提到的操作,使用Workbooks.OpenText打开每个文件,然后将打开的工作簿中的每一行复制到指定的工作表中
Sub Read_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
'Files location
sPath = "C:\Test\"
Set wsDestination = ThisWorkbook.Sheets("Sheet1")
r = 8
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oPath = oFSO.GetFolder(sPath)
Application.ScreenUpdating = False
For Each oFile In oPath.Files
If LCase(Right(oFile.Name, 4)) = ".txt" Then
'open file to impor
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).Rows(iRow).Copy wsDestination.Rows(r)
r = r + 1
Next iRow
wbImportFile.Close False
Set wbImportFile = Nothing
End If
Next oFile
End Sub
ps:我有VBA,它允许将数据导入电子表格,并将数据粘贴到单个单元格中(以制表符分隔),但我不知道如何将两者联系在一起
'打开文本文件工作簿。OpenText文件名:=strInFile,Origin:=65001,StartRow:=1,DataType:=xlDelimited,uTextQualifier:=xlDoubleQuote,continuedElimiter:=False,Tab:=True,FieldInfo:=Array(1,1),uLingMinusNumbers:=True
你说第一个文件进入B8,下一个进入B9,等等。。。每个文件是否只有一行长?您可以使用Split(sLine,vbTab)
创建一个值数组,然后将其分配给工作表。嘿,罗斯,非常感谢您的回答-它正是我现在需要的:)您知道如何将此粘贴到B列而不是A列吗?尝试了两种方法,但不断出现调试错误@当然,只需将行wbImportFile.Sheets(1).Rows(iRow).复制wsDestination.Rows(r)
到wbImportFile.Sheets(1).UsedRange.Rows(iRow).复制wsDestination.Cells(r,2)
这将代替复制整行,只复制UsedRange单元格,并插入目标工作簿的第2列。嘿,罗斯-完美,这正是我所需要的。对你的帮助我感激不尽!:)
Sub Read_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
'Files location
sPath = "C:\Test\"
Set wsDestination = ThisWorkbook.Sheets("Sheet1")
r = 8
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oPath = oFSO.GetFolder(sPath)
Application.ScreenUpdating = False
For Each oFile In oPath.Files
If LCase(Right(oFile.Name, 4)) = ".txt" Then
'open file to impor
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).Rows(iRow).Copy wsDestination.Rows(r)
r = r + 1
Next iRow
wbImportFile.Close False
Set wbImportFile = Nothing
End If
Next oFile
End Sub