Excel 使用vba从internet链接名获取URL

Excel 使用vba从internet链接名获取URL,excel,vba,url,hyperlink,Excel,Vba,Url,Hyperlink,每个月我们都会通过点击一个链接从互联网上下载一份随时间变化的表单 所以我想做一个vba,从站点中的一个链接名获取URL。附加图像就是一个例子。我想把URL用红色圈起来,然后粘贴到excel中(文件名为otform.xlsm cell A1) 下面的代码将为您提供谷歌的第一个搜索结果。 代码将在单元格A1中搜索值,并在单元格B1中输入搜索结果 Sub GetURL() Dim url As String Dim XMLHTTP As Object, html As Object,

每个月我们都会通过点击一个链接从互联网上下载一份随时间变化的表单

所以我想做一个vba,从站点中的一个链接名获取URL。附加图像就是一个例子。我想把URL用红色圈起来,然后粘贴到excel中(文件名为otform.xlsm cell A1)


下面的代码将为您提供谷歌的第一个搜索结果。
代码将在单元格A1中搜索值,并在单元格B1中输入搜索结果

Sub GetURL()
    Dim url As String
    Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object

    url = "https://www.google.co.in/search?q=" & Range("A1").Value & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)

    Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
    XMLHTTP.Open "GET", url, False
    XMLHTTP.setRequestHeader "Content-Type", "text/xml"
    XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
    XMLHTTP.send

    Set html = CreateObject("htmlfile")
    html.body.innerHTML = XMLHTTP.ResponseText
    Set objResultDiv = html.getelementbyid("rso")
    Set objH3 = objResultDiv.getelementsbytagname("H3")(0)
    Set link = objH3.getelementsbytagname("a")(0)

    Range("B1").Value = link.href
    DoEvents

    MsgBox "Done"
End Sub

我想这就是你想要的

这是我从你那儿弄来的

编辑#1:使用Internet Explorer \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu强

Sub GetURL()
    Dim ie As SHDocVw.InternetExplorer  'Requires reference to "Microsoft Internet Controls"
    Dim searchString As String
    Dim lngStartAt As Long, lngResults As Long
    Dim doc As MSHTML.HTMLDocument      'Requires reference to "Microsoft HTML Object Library"
    Dim objResultDiv As Object, objH3 As Object, link As Object

    Set ie = New SHDocVw.InternetExplorer
    lngStartAt = 1
    lngResults = 100

    searchString = Range("A1").Value

    ie.navigate "https://www.google.co.in/search?q=" & searchString
    Do Until ie.readyState = READYSTATE_COMPLETE: DoEvents: Loop

    Set doc = ie.document
    Set objResultDiv = doc.getElementById("rso")
    Set objH3 = objResultDiv.getElementsByTagName("H3")(0)
    Set link = objH3.getElementsByTagName("a")(0)

    Range("B1") = link.href

    ie.Quit
End Sub
您必须从
工具
菜单中添加以下两个
参考

  • 微软互联网控制
  • Microsoft HTML对象库

  • 是的,我在youtube上编写了一段代码,但它似乎根本不起作用…请参见以下内容。您好,Mrig…我遇到了一个超时错误…当我单击“调试”时,它将指向-->XMLHTTP.Send…顺便说一下,我们只使用internet explorer。。。。thanks@200yrs-这可能是因为你的网速太快了。@Mrig…我们的网速太快了…哦,我找到了一个代码,请看下面…但我不想得到所有的URL。我只想要一个链接名为“Getting started with Excel VBA-I Programmer”(开始使用Excel VBA-I程序员)的URL
    code
    很抱歉,我没有被5分钟的编辑时间抓到……所以我们的互联网真的很快……代码使用internet explorer工作吗?@200yrs-我添加了使用internet explorer获取谷歌结果的代码。