首页 > 解决方案 > 从网页视图源中搜索特定文本并使用 VBA 宏复制完整的完整行

问题描述

我正在尝试使用 Excel VBA 从网页视图源中获取一整行特定文本。我可以找到文本但无法进入单元格。下面是我的 VBA 代码

Sub latlong()

Dim IE As Object
Dim html As HTMLDocument

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate Range("p2")

Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

mes = IE.document.body.innerHTML
If InStr(mes, "var point") = 0 Then
     ActiveSheet.Range("q2").Value = "Not Found"
        Else
            ActiveSheet.Range("q2").Value = "Found"
       End If



 IE.Quit

    Set IE = Nothing

End Sub

我想复制下面的特定文本的整行是我试图从网页中提取的示例文本

var point = new GLatLng(17.71697,083.30275);

我没有找到适合我的问题的答案,请帮助我

标签: vbaexcelweb-scraping

解决方案


由于您知道行的开始位置,因此只需从开始到结束提取行。该行以分号结束。答案应该很简单:

Sub latlong()

Dim IE As Object
Dim html As HTMLDocument
Dim codeLine as String
Dim startPos as Long

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate Range("p2")

Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

mes = IE.document.body.innerHTML

startPos = InStr(mes, "var point")
If startPos = 0 Then
    ActiveSheet.Range("q2").Value = "Not Found"
Else
    codeLine = Mid(mes, startPos, InStr(startPos, mes, ";") - startPos)
    ActiveSheet.Range("q2").Value = codeLine
End If

IE.Quit

Set IE = Nothing

End Sub

不需要正则表达式。:-)


推荐阅读