2016-06-13 1 views
0

웹 사이트에서 Excel에서 텍스트를 검색하기 위해 vba와 협력 중입니다. 문제는 웹 사이트에 직접 검색 할 수있는 소스 코드가 없으므로 검색 용으로 sendkeys를 사용하고 있다는 것입니다.웹 페이지에서 텍스트를 검색하십시오. 다음 단어로 건너 뛰십시오.

텍스트가 웹 페이지에서 발견되지 않으면 검색 조건을 건너 뛸 수 없기 때문에 소스 코드없이 검색 할 수있는 대안이 있습니까? 텍스트가 웹 페이지에서 발견되지 않으면 코드를 다음 단어로 건너 뛰고 싶습니다.

With iedoc.forms(0) 
    ActiveSheet.Range("H5").Copy 
SendKeys "^f", True 
SendKeys "^v", True 
SendKeys "{TAB}", True 
Application.Wait Now + TimeSerial(0, 0, 1) 
SendKeys "{TAB}", True 
Application.Wait Now + TimeSerial(0, 0, 1) 
SendKeys "^{ }", True 
ActiveSheet.Range("H6").Copy 
SendKeys "^f", True 
SendKeys "^v", True 
SendKeys "{TAB}", True 
Application.Wait Now + TimeSerial(0, 0, 1) 
SendKeys "{TAB}", True 
Application.Wait Now + TimeSerial(0, 0, 1) 
SendKeys "^{ }", True 
End With 

답변

0

당신은 모든 텍스트를 얻을 수 있습니다 당신은 메모리에 있고 확인할 수 있습니다 그리고

sText = iedoc.Body.Innertext ' get all the text from the browser 

(iedoc 가정 어쨌든 IE 문서로 정의된다) : 아래

코드입니다 좋아하는 단어로 InStr으로 말하면 어떨까요?

는 예를 들어, 다음을 수행 할 수 있습니다, 셀 "H5"의 값을 확인하십시오 :

If (Instr(sText, ActiveSheet.Range("H5").Value)>0 Then 
    MsgBox ActiveSheet.Range("H5").Value & " was found in the text!" 
End If 

는 활성화의 워크 시트에 따라 쉽게 변경할 수 있습니다으로 비록 내가 ActiveSheet를 사용하지 않는 것이 좋습니다 시간과 코드가 잘못된 탭을 볼 수 있습니다. 항상 더 나은 당신이보고되는 워크 시트를 정의하고 직접 참조 : 그것은 될 것입니다

If (Instr(sText, ws.Range("H5").Value)>0 Then 
    MsgBox ws.Range("H5").Value & " was found in the text!" 
End If 
+0

:

Dim ws as Worksheet : Set ws = ThisWorkbook.Worksheets("mySheetNameHere") 

그런 다음 당신은 당신이 그것을 원하는 코드를 항상 시트를 참조합니다 확신 할 수 있습니다 훌륭한 도움을 주시면 제안 된 답변을 제 코드로 대체하는 데 도움이됩니다. – Striker

+0

수정 된 답변의 예보기 – Dave

관련 문제