2016-06-13 1 views
0

私はウェブサイトでExcelのテキストを検索するためにvbaと協力しています。問題は、Webサイトに直接ソースコードを検索するためのソースコードがないため、検索用にsendkeysを使用していたことです。ウェブページでテキストを検索する(見つからない場合)次の単語にスキップする

ウェブページにテキストが見つからない場合、検索条件をスキップできないため、ソースコードなしで検索する代替手段はありませんか? Webページにテキストが見つからない場合は、次の単語にスキップするようにします。以下は

コードです:

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

関連する問題