从Web页面查看源搜索特定文本,并使用VBA宏复制完整的完整行

问题描述 投票:0回答:1

我正在尝试使用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);

我找不到任何合适的答案,请帮助我

excel vba excel-vba web-scraping
1个回答
1
投票

由于您知道线的起始位置,因此仅保留从开始到结束的线。该行以分号结尾。答案应该是这么简单:

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

无需RegEx。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.