2016-06-17 2 views
0

Excel에서 VBA 및 VBA에 대해 상당히 새로운 것으로, 조건에 따라 하나의 셀 값 ("Guid")을 기반으로 웹 데이터를 스크래핑하는 방법을 알아 내려고 노력했습니다. 실제로 기능을 향상시킬 수있는 방법을 찾지 못했습니다. 현재로서는 하나의 특정 셀에 대한 데이터를 검색하고 다른 지정된 셀에 인쇄 할 수만 있습니다. 난 그냥 변수 함수를 반복하는 일종의 실종 믿습니다? (거기에는 아마 코드를 작성하는 더 정확한 방법이 있습니다).변수 url (URL 확장자)을 사용하여 Excel에서 웹 스크래핑

Sub ie_open() 
    Dim wb As Workbook 
    Dim ws As Worksheet 
    Dim TxtRng As Range 
    Dim Guid As Range 
    Dim ie As Object 
    Dim URL As String 

    URL = "https://url.com/userpage=" 
    Set wb = ActiveWorkbook 
    Set ws = wb.Sheets("Detail Report - Individuals") 
    Set Guid = ws.Range("E2") 
    Set TxtRng = ws.Range("F2") 
    Set ie = CreateObject("INTERNETEXPLORER.APPLICATION") 

    ie.NAVIGATE (URL + Guid) 
    ie.Visible = True 

    While ie.ReadyState <> 4 
    DoEvents 
    Wend 

    TxtRng = ie.document.getelementbyid("lbl_Location").innertext 

End Sub 

감사합니다.

답변

0

HTML 요소에 대한 참조를 켜십시오 (도구 - 참조로 이동하십시오 .IE를 InternetExplorer 객체로 선언 할 수 있도록 Microsoft Internet 컨트롤에 대한 참조를 설정해야하지만 반드시 필요하지는 않습니다) , 당신은 할 수있는 등의 각 요소를 통해 루프

Sub ie_open() 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim TxtRng As Range 
Dim Guid As Range 
Dim ie As Object 
Dim URL As String 
'ADDED THIS 
Dim sl as Ihtmlelement 
Dim r as long = 1 

URL = "https://url.com/userpage=" 
Set wb = ActiveWorkbook 
Set ws = wb.Sheets("Detail Report - Individuals") 
Set Guid = ws.Range("E2") 
Set TxtRng = ws.Range("F2") 
Set ie = CreateObject("INTERNETEXPLORER.APPLICATION") 

ie.NAVIGATE (URL + Guid) 
ie.Visible = True 

While ie.ReadyState <> 4 
DoEvents 
Wend 

For each sl in ie.document.all 
    ws.cells(r, 1).value = sl.innertext 
    r = r + 1 
Next 

'TxtRng = ie.document.getelementbyid("lbl_Location").innertext 

End Sub 

편집 : 루프에서 r 변수를 증가하는 것을 잊었다, 나는 루프

를 초기화 할 때 대신 IE.DocumentIE.Document.All해야한다고 생각