2014-12-29 2 views
0

저는 Excel vba에서 예쁜 초보자입니다. 나는이 문제를 가지고 :Excel 스크랩 테이블

Sub ImportMyData() 

    Dim IE As New InternetExplorer 

    IE.Visible = False 
    IE.navigate "http://www.bgstechnic.com/availability?processed&F1244467957750MNRHTT=_" 

    Do 
     DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 

    IE.document.getElementById("item-numbers").Value = "1195" 

    Set goBtn = IE.document.getElementById("bgs-submit") 
    goBtn.Click 

    Do 
     DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 

    Dim sdd As String 
    sdd = IE.document.getElementById("availability-results").innerText 

    MsgBox sdd 

End Sub 
: 내가 항목 @의 www.bgstechnic.com/availability 예를 들어

의 사용 가능 여부를 확인하기 위해 엑셀 원하는

를 "1195"

나는이 VBA를 썼다

내 문제는 단지 부품이 필요하다는 것입니다. "재고가있는 품목, 50 개 이상 사용 가능"을 Excel에 삽입 할 수 있지만이 서브 테이블 (?)의 ID를 찾을 수 없습니다.

아무도 나를 도와 줄 수 있습니까?

+0

이제 이상하게 보입니다. "sdd = IE.document.getElementsByTagName ("td ")로 변경하면 이상합니다. (1) .innerText "실행 시간 오류 91이 나옵니다. 그러나 f5 키를 누르고 더 이상 실행하면 사용할 수있는 양의 메시지가 표시됩니다 ...이 문제를 해결하는 방법은 무엇입니까? –

답변

0

클래스 이름별로 더 멀리 드릴 다운해야합니다. 이것을 시도하십시오 :

sdd = IE.Document.getElementsByClassName("availability-desc")(0).innerText 

가용성 열에서 행 (0) 설명을 반환합니다. 이것은 작동해야하지만 (면책 조항) #! @ #! IE 문제로 인해 시도하지 않았습니다.)

+0

불행히도, 그 경우에는 오류가 발생합니다 : 런타임 오류 428. 개체가이 속성 또는 메서드를 지원하지 않습니다. 내 I-explorer에는 버전 11이 있습니다. –

+0

IE 11이이 방법을 지원하지만 (http://caniuse.com/#feat=getelementsbyclassname 참조), 호출 구조가 잘못되었을 수 있습니다. 빠른 검색 : 예 : http://stackoverflow.com/questions/20205442/excel-vba-get-inner-text-of-html-table-td –