, если вам действительно нужно его как функцию затем
Option Explicit
Function GoogleFirstUrl(search As String) As String
Dim i As Long
Dim url As String, lastRow As Long
Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Dim cookie As String
Dim result_cookie As String
DoEvents
url = "https://www.google.co.in/search?q=" & search & "&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)
GoogleFirstUrl = link.href
End Function
Примечание: вы не можете изменить другие клетки с помощью UDF, чтобы вы могли возвращать только одну вещь за раз в ячейку, которую вы использовали для ввода формулы, в. Я выбрал URL-адрес, как вы назвали свою функцию.
просто добавьте кнопку, которая запускает суб –
Косметическое изменение от Sub до Function является обманом. – brettdj