2017-06-05 2 views
0

これは本当に私を困らせましたが、簡単な解決策があるようです。2弦にマッチするVBA

Failedと一致しない場合はDoneと表示する2つの文字列が一致するコードがあります。

... 
tmpString = ie.SetPageID("SystemComments", innerText & vbCrLf & "eATO: " & eMASSFieldAppender.cbATO.text & vbCrLf & "PSO: " & eMASSFieldAppender.tbPSO.text & vbCrLf & "AMP: " & eMASSFieldAppender.tbAMP) 
... 

私はdone or failed

を吐き出すために、条件付きなステートメントを試す場所です:

私が最初にここ

.... 
    Do While ie.getRowsInTables("tbl_business") ' table class name 
    For Each tr In ie.tableRows 
     For Each cell In tr.Cells 
      If (InStr(cell.innerHTML, "SystemComments")) Then 
       innerText = cell.innerText 
      End If 
     Next 
    Next 
    Exit Do 
Loop 
... 

これは私がテキスト領域を設定する場所で追加するテキストをつかみます

... 
If (ie.GetEditSipPage(emass_id) = True) Then 
    tmpString = ie.GetPageID("SystemComments") 

    If (tmpString = innerText & vbCrLf & "eATO: " & eMASSFieldAppender.cbATO.text & vbCrLf & "PSO: " & eMASSFieldAppender.tbPSO.text & vbCrLf & "AMP: " & eMASSFieldAppender.tbAMP) Then 

     Worksheets(wrksht).Cells(readRow, 2).value = "Done" 
    Else 
     Worksheets(wrksht).Cells(readRow, 2).value = "FAILED TO UPDATE" 
    End If 
... 

私のコードは完全に機能していますが、それらの状態に一致していないことに注意してくださいments。

私がDebug.Printを実行すると、それらは同じ正確なステートメントであるように見えます。

何が欠けていますか?

+0

使用 '' 'ブール式のand'''と' ''& '' 'のための文字列concatentation ... –

+0

右。私は基本的には、すでにウェブサイト上のテキストエリアに追加したいと思っていました。 – ShanayL

+1

えーと..弦が違うので。改行文字や追加スペースを確認しましたか?あなたはまた、いくつかのエディタを使用して、16進表示に変更することができます...文字で文字を比較する... –

答えて

0

あなたがinnerHTMLプロパティに書いている内容に応じて、それはあなたがそれを置いたときとまったく同じ外にリードバックするという保証はありません。

たとえば、あなたがinnerHTMLプロパティを設定した場合=「A {6つのスペース} B "では、複数のスペースがHTML内の単一のスペースに通常折りたたまれてしまうため、" A {1つのスペース} B "として読み返します。

ボトムラインあなたはそれが戻ってくるそのままする必要がある場合、innerHTMLのはランダムなテキストを格納するのに適した場所ではない..です

関連する問題