这个让我感到难过,但似乎有一个简单的解决方案。
我有一个代码,我匹配两个字符串,如果它们不匹配则显示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
时,它们似乎是完全相同的语句。
我错过了什么?
答案 0 :(得分:0)
根据您对innerHTML所写的内容,我们无法保证它会在您将其放入时完全相同地读回。
例如,如果设置innerHTML =“A {six spaces} B”,它将读回“A {one space} B”,因为多个空格通常会折叠到HTML中的单个空格。
最重要的是,如果您需要将随机文本保持不变,则innerHTML不是存储随机文本的好地方。