匹配两个字符串 VBA

matching two strings 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)
...

这是我尝试条件语句吐出的地方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 时,它们似乎是完全相同的语句。

我错过了什么?

根据您向内部写入的内容HTML,无法保证读出的内容与您放入时完全相同。

例如,如果您设置 innerHTML = "A{six spaces}B",它会读回 "A{one space}B",因为多个 space 通常会折叠成一个 space 在 HTML.

底线,内部HTML不是一个存储随机文本的好地方,如果你需要它返回不变..