Vba Excel-在TXT文件中搜索关键字,并将找到关键字的行写入Excel单元格

Vba Excel-在TXT文件中搜索关键字,并将找到关键字的行写入Excel单元格,vba,excel,Vba,Excel,我想在TXT文件中搜索关键字,并将找到关键字的行写入excel单元格 我有一段VBA代码可以工作,但它只写关键字+我给它额外的字符。 所以我必须知道关键字后面有多少个字符 我的问题是有人能帮我写完整行的代码吗。。所以,到最后 我需要: 函数的作用是打开文件 轻松添加关键字 轻松添加放置关键字的单元格 谢谢 在每行循环时,测试该行的关键字,只为变量text指定符合条件的行,然后立即退出循环 Open myFile For Input As #1 text = "" Do Until EOF

我想在TXT文件中搜索关键字,并将找到关键字的行写入excel单元格

我有一段VBA代码可以工作,但它只写关键字+我给它额外的字符。 所以我必须知道关键字后面有多少个字符

我的问题是有人能帮我写完整行的代码吗。。所以,到最后

我需要:

  • 函数的作用是打开文件
  • 轻松添加关键字
  • 轻松添加放置关键字的单元格
谢谢



在每行循环时,测试该行的关键字,只为变量
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