2016-05-14 32 views
-3

毎月、私たちはインターネットから時間切れのフォームをリンクをクリックしてダウンロードしました。vbaを使用してインターネットリンク名からURLを取得

だから私はサイト内のリンク名からURLを取得するためにvbaを作りたいと思います。添付画像が例です。私は、赤で丸で囲まれたURLを取得してExcel(filename otform.xlsm cell A1)に貼り付けたいと思います。コードの下

Example

+0

はい、私は、コードを作っユーチューブから続くが、それはまったく機能していないようです...以下を参照してください。 – 200yrs

答えて

0

あなたのGoogleによる最初の検索結果が得られます。
コードは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から取得しました。

EDIT#1:あなたはToolsメニューから2 Referencesを以下を追加する必要があります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 

を使用する:

  1. のMicrosoftインターネットコントロール
  2. のMicrosoft HTMLオブジェクトライブラリ
+0

こんにちはMrig ...タイムアウトエラーが発生しました...デバッグをクリックすると、> XMLHTTP.Send ...を参照します。ところで、私たちはインターネットエクスプローラを使用しています....ありがとう – 200yrs

+0

@ 200yrs - これはおそらくあなたのインターネットの速度のためです。 – Mrig

+0

@Mrig ...私たちのインターネットは高速です...オハイオ州私は下に参照してくださいコードが見つかりました...しかし、私はすべてのURLを取得したくありません。私はリンク名が「Excel VBAで始める - 私のプログラマー」「コード」 – 200yrs

関連する問題