VBA检索文件下所有.txt文件,并在.txt文件中查找指定字符串到新工作表中
时间: 2023-03-22 11:03:38 浏览: 152
Word VBA中搜索指定名称的文件.txt
以下是一个基本的VBA代码示例,可以用于搜索指定的字符串,并将包含该字符串的所有.txt文件中的行复制到新工作表中:
```
Sub SearchAndCopy()
Dim searchTerm As String
Dim fileToOpen As Variant
Dim fileContent As String
Dim fileName As String
Dim fileLines() As String
Dim i As Long, j As Long
Dim newRow As Long
'获取搜索字符串
searchTerm = InputBox("请输入要搜索的字符串:")
'打开文件对话框,选择要打开的.txt文件
fileToOpen = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "请选择要打开的文件", , False)
If fileToOpen <> False Then '如果选择了文件
'循环打开所有选定的文件
For Each fileName In fileToOpen
'读取文件内容并将其分成行
Open fileName For Input As #1
fileContent = Input$(LOF(1), 1)
Close #1
fileLines = Split(fileContent, vbNewLine)
'检查每一行是否包含搜索字符串,如果包含,则将其复制到新工作表中
newRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 '找到新行
For i = LBound(fileLines) To UBound(fileLines)
If InStr(1, fileLines(i), searchTerm, vbTextCompare) > 0 Then '如果该行包含搜索字符串
'将该行复制到新工作表中
For j = 0 To 3 '假设文件的前四列是要复制的列
Cells(newRow, j + 1).Value = Split(fileLines(i), vbTab)(j)
Next j
newRow = newRow + 1 '新行的位置向下移动
End If
Next i
Next fileName
End If
End Sub
```
请注意,此代码示例仅用于说明VBA代码的基本结构和语法,并且需要进行修改,以适应您的具体需求和文件结构。例如,您可能需要更改要复制的列数、文件中的分隔符、新工作表的名称等。
阅读全文