Excel에서 vba를 사용하여 첨부 된 그림에서 문자열을 찾아야합니다. 아래 코드가 있지만 찾고있는 날짜를 찾지 못했습니다. 찾을 루프 는 innerHTML 속성은 태그 내에서 컨텐츠를 받았지만 태그 자체를 선택하지 않는VBA를 사용하여 DOM 탐색기에서 문자열 찾기
Dim Doc As HTMLDocument
Dim Elements As IHTMLElementCollection
Dim elements1 As IHTMLElementCollection
Dim Elements2 As IHTMLElementCollection
Dim iCnt As Integer
Dim Element As IHTMLElement
Dim appIE As InternetExplorerMedium
Sheets(1).Cells(1, 1).Value = ""
complete = 0
Set appIE = New InternetExplorerMedium
sURL = "https://example.com"
With appIE
.Navigate sURL
.Visible = True
Do While appIE.Busy Or appIE.ReadyState <> 4
DoEvents
Loop
Do While complete <> 1
Set Doc = appIE.Document
Set Elements = Doc.GetElementsByTagName("input")
Set elements1 = Doc.GetElementsByTagName("strong")
Set Elements2 = Doc.GetElementsByTagName("td")
For Each Element In Elements
If Element.ID = "form-id" Then
requestnumber = Element.GetAttribute("Value")
End If
If Element.ID = "remedy-case-info" Then
CaseInfo = Element.GetAttribute("Value")
End If
Next Element
For Each Element In elements1
If InStr(1, Element.InnerHtml, "EM") Then
For iCnt = 1 To Len(Element.InnerText)
If IsNumeric(Left(Element.InnerText, 2)) Then
NumericOnly (Element.InnerText)
End If
Next iCnt
End If
Next Element
AClientCount = tempcount
For Each Element In Elements2
' If InStr(1, Element.InnerHtml, "td") Then
If InStr(1, Element.InnerHtml, "value-field align-top") Then
Requestdate = Element.GetAttribute("Value")
End If
' End If
Next Element
Set Elements = Nothing
If requestnumber <> "" Then
Sheets(1).Cells(1, 1).Value = requestnumber & " - " & CaseInfo & " - " & tempcount & " - " & Requestdate
complete = 1
End If
Loop
.Quit
End With
당신이 Element.InnerHtml' 날짜가 전체 innerHTML을의 일환으로 직접 실행 창에 표시 않는'을 Debug.Print을한다면? 그렇다면 'Mid \ Left \ Right, etc.'를 사용하여 문자열에서 날짜를 파싱하십시오. –
불행히도이 문구는 전혀 사용하지 않습니다. td 태그가있는 다른 구문을 볼 수 있지만이 것은 아닙니다. – user3323922
아마도'element2.innerhtml'에있는 debug.pring이 올바른 것을 보여줄 것입니다. 그런 다음 그것을 제거하는 방법을 만들 수 있습니다. 때로는 이것이 웹 사이트 스크래핑을 디버깅하는 데있어 내가 찾은 유일한 방법입니다. –