Vba Excel-在TXT文件中搜索关键字,并将找到关键字的行写入Excel单元格
我想在TXT文件中搜索关键字,并将找到关键字的行写入excel单元格 我有一段VBA代码可以工作,但它只写关键字+我给它额外的字符。 所以我必须知道关键字后面有多少个字符 我的问题是有人能帮我写完整行的代码吗。。所以,到最后 我需要:Vba Excel-在TXT文件中搜索关键字,并将找到关键字的行写入Excel单元格,vba,excel,Vba,Excel,我想在TXT文件中搜索关键字,并将找到关键字的行写入excel单元格 我有一段VBA代码可以工作,但它只写关键字+我给它额外的字符。 所以我必须知道关键字后面有多少个字符 我的问题是有人能帮我写完整行的代码吗。。所以,到最后 我需要: 函数的作用是打开文件 轻松添加关键字 轻松添加放置关键字的单元格 谢谢 在每行循环时,测试该行的关键字,只为变量text指定符合条件的行,然后立即退出循环 Open myFile For Input As #1 text = "" Do Until EOF
- 函数的作用是打开文件
- 轻松添加关键字
- 轻松添加放置关键字的单元格
在每行循环时,测试该行的关键字,只为变量
text
指定符合条件的行,然后立即退出循环
Open myFile For Input As #1
text = ""
Do Until EOF(1)
Line Input #1, textLine
If InStr(1, textLine, "keyword1") > 0 Then
text = textLine
Exit Do
End If
Loop
Close #1
Range("A10").Value = text
当使用换行符(chr(10
)或vbLf
)标记行尾时,可以使用FileSystemObject来代替
'
'
'
Dim oFSO As Object
Dim oTS As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile(myFile)
text = ""
Do Until oTS.AtEndOfStream
textLine = oTS.ReadLine
If InStr(1, textLine, "keyword1") > 0 Then
text = textLine
Exit Do
End If
Loop
oTS.Close
Range("A10").Value = text
'etc
'
'
Set oFSO = Nothing
Set oTS = Nothing
您的
文本
是否包含vbNewLine
?您好,Mehdi。。好问题。。我如何检查这个?实际上,包含vbNewLine
的text
会影响您的解决方案。如果不包括vbNewLine
,则Domenic的答案是正确的。如果是这样,解决方案就不同了。您必须根据您的假设或根据文本
的来源了解它。嗨,多梅尼克,谢谢您的回复。。您的代码仍然输入单元格A10中的comlete文件。我想把关键字所在的完整行放在单元格A10中。多米尼克,我没有让你的代码正常工作,但同时还有一个脚本正常工作。。。谢谢你的帮助。对于拆分(文本,vbLf)中的每一行,如果测试>0,则测试=InStr(行,搜索),如果下一行FindValue=find End函数,则查找=中间(行,测试,Len(行))结束
'
'
'
Dim oFSO As Object
Dim oTS As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile(myFile)
text = ""
Do Until oTS.AtEndOfStream
textLine = oTS.ReadLine
If InStr(1, textLine, "keyword1") > 0 Then
text = textLine
Exit Do
End If
Loop
oTS.Close
Range("A10").Value = text
'etc
'
'
Set oFSO = Nothing
Set oTS = Nothing