2016-08-29 2 views
1

은 VBA를 약 10 년 만에 사용하지 않았으며 작업에서 효율성과 정확성을 향상시키기 위해이를 사용하기 시작했습니다. html5 범위에서 개별 값 가져 오기/복사 만하면됩니다.개별 스팬 값을 Excel로 가져 오기

이것은 HTML5 (I이 당신이 필요로하는 유일한 정보를 바라고 있어요)입니다 그리고 내가 "FRANK

<span class="defvalue" id="GivenName">FRANK</span>

내가 페이지에 IE를 실행하고 로그인 할 수있었습니다을 가져 기대하고 있어요 원하는 정보가있는 페이지로 이동해야하지만 어디에서 가야할지 확실하지 않습니다. 아래 라인을 따라 뭔가를 시도해 보았습니다. 그렇게 쉬운 일이 아니길 바라지 만, 그렇지 않을 수도 있습니다. 거대한 성숙을 참조하십시오.

ieApp.Navigate "https://example.info.com/Details/" & Range("C6") 
     Do While ieApp.Busy: DoEvents: Loop 
     Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop 
      Range("B1").Value = "Collecting Data..." 

     Range("C10").Value = appIE.Document: .getElementsById ("GivenName") 

A 뉴욕 도움이 많이 주시면 감사하겠습니다. 같은 페이지에서 다른 범위의 몇 가지 다른 값을 수집하기를 원했습니다. 당신이해야 할 일을했을 무엇

감사합니다,

플레처

+0

안녕하세요, 저는 [VBA에서 HTML 구문 분석]과 관련하여이 주제를 살펴보아야한다고 생각합니다. (http://stackoverflow.com/question s/25488687/parse-html-content-in-vba)이 필요합니다. –

+1

'appIE.Document : .getElementsById ("GivenName")'이것은 컴파일되지 않습니까? 'appIE'는 당신이'ieApp'를 사용하는 객체의 이름이 아니며, 줄의 중간에있는 콜론은'.getElementsById'를 정규화되지 않은 참조로 만듭니다 ... – Mikegrann

답변

1

https://example.info.com/Details/

에서 GivenName ID 블록의 값을 얻기 위해 일을 할 것입니다 ieApp.document.getElementById("GivenName")

아래 코드의 innerHTML 값을 얻을 수 있었다

Dim ieApp As Object 
Set ieApp = CreateObject("internetexplorer.application") 

With ieApp 
    .Navigate "https://example.info.com/Details/" 
    .Visible = False 
End With 

Do While ieApp.Busy 
    DoEvents 
Loop 

Set allRowOfData = ieApp.document.getElementById("GivenName") 

Dim myValue As String 
myValue = allRowOfData.innerHTML 

MsgBox myValue 

Set ieApp = Nothing 
관련 문제