2016-05-14 107 views
-3

我們每個月都會通過單擊鏈接從互聯網下載超時表單。使用vba從互聯網鏈接名稱獲取URL

所以我想讓一個vba從站點中的一個鏈接名稱獲取URL。附加圖像就是例子。我想要以紅色包圍URL並粘貼到excel中(文件名otform.xlsm單元格A1)。

Example

+0

是的,我做了一個碼,然後從YouTube,但似乎不工作...請參閱以下內容。 – 200yrs

回答

0

下面的代碼會給你通過谷歌的第一個搜索結果。
代碼將搜索Cell A1中的值,並將在Cell 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 

enter image description here

我想這是你想要的。

here得到這個。

編輯#1:使用Internet Explorer ________________________________________________________________________________

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 

你必須添加以下兩個ReferencesTools菜單:

  1. Microsoft Internet控制
  2. Microsoft HTML對象庫
+0

你好Mrig ...我有一個超時錯誤...當我點擊調試它會指向 - > XMLHTTP.Send ...順便說一下,我們只使用Internet Explorer ....謝謝 – 200yrs

+0

@ 200yrs - 這可能是因爲你的互聯網速度。 – Mrig

+0

@Mrig ...我們的互聯網速度很快......哦,我發現代碼工作見下文......但我不想要所有的URL。我只想要鏈接名稱爲「Excel VBA - I程序員入門」代碼的網址 – 200yrs