2017-06-05 80 views
0

這一個真的讓我難住,但它似乎有一個簡單的解決方案。匹配兩個字符串VBA

我有一個代碼,我匹配兩個字符串來顯示Failed如果他們不匹配和Done是如果他們這樣做。

我第一次搶文字在這裏追加

.... 
    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 
... 

這是我設置文本區域:

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

這是我嘗試有條件statment吐出done or failed

... 
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 
... 

請注意我的代碼功能齊全,但它只是不匹配這些狀態發言:。

當我做一個Debug.Print他們似乎是相同的確切陳述。

我失蹤了什麼?

+0

使用'''and'''布爾表達式和'''和'''的字符串concatenation ... –

+0

沒錯。我基本上想添加已經在網站上的文字區域。 – ShanayL

+1

嗯..所以琴絃是不同的。你檢查了換行符或附加空格嗎?你也可以使用一些編輯器和更改爲十六進制視圖...以字符比較字符... –

回答

0

根據你寫的innerHTML什麼,也不能保證它會讀背出完全一樣的,當你把它作爲。

例如,如果你設置的innerHTML =「A {六個空格} B「,它會讀回爲」A {一個空格} B「,因爲多個空格通常會被摺疊爲HTML中的單個空格。

底線,innerHTML的不是存儲隨機文本,如果你需要它回來不變的好地方..