匹配两个字符串VBA

时间:2017-06-05 18:45:19

标签: string vba excel-vba conditional excel

这个让我感到难过,但似乎有一个简单的解决方案。

我有一个代码,我匹配两个字符串,如果它们不匹配则显示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时,它们似乎是完全相同的语句。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

根据您对innerHTML所写的内容,我们无法保证它会在您将其放入时完全相同地读回。

例如,如果设置innerHTML =“A {six spaces} B”,它将读回“A {one space} B”,因为多个空格通常会折叠到HTML中的单个空格。

最重要的是,如果您需要将随机文本保持不变,则innerHTML不是存储随机文本的好地方。