Excel 使用vba从internet链接名获取URL
每个月我们都会通过点击一个链接从互联网上下载一份随时间变化的表单 所以我想做一个vba,从站点中的一个链接名获取URL。附加图像就是一个例子。我想把URL用红色圈起来,然后粘贴到excel中(文件名为otform.xlsm cell A1)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,
下面的代码将为您提供谷歌的第一个搜索结果。
代码将在
单元格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
您必须从工具
菜单中添加以下两个参考
:
是的,我在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获取谷歌结果的代码。