我公开承认我对vba一无所知..
我正在研究项目的遗留工具,并用VBA编写。有一个我正在处理的错误,我已经缩小了问题,但无法弄清楚为什么我的字符串显然被切断了?
strXPlusLast4 = "xxxxxxxxxxxx" & strDCLast4
For Each varItem In objIE.Document.getElementsByTagName("tr")
If InStr(varItem.innerhtml, strXPlusLast4) Then
strDCStatus = Replace(Split(Split(varItem.innerhtml, "<TD>")(3), "</TD>")(0), " ", "")
使用IE对象导航到某个页面,它会查看所有tr
。在它找到的tr
内,它正在查看字符串是否存在。
如果找到这个字符串,它会进入我被卡住的IF statement
。
在这里,我检查varitem.innerHTML
的值,并且在实际行数据的中间位置大约有250个字符。
我试图找出是否有任何限制,为什么innerHTML
的值不是完整的HTML
内容,我希望看到我在网页上查看它正在刮擦。
当我向手表添加varItem
并查看对象的innerHTML
时,此数据也会被截止。
任何人都可以对我能够发布此问题的一小段代码有所了解吗?我的根本问题是我没有得到我期望的strDCStatus
,因为它没有搜索完整的数据行,因为有些东西正在截止。
更新
以下是我可以为TR
提供的最佳内容:
<tr class="">
<td>
</td>
<td>2 Blah Blah </td>
<td class="AccountNumber">
xxxxxxxxxxxx1234
<a href="#" onclick="view(this, event,'12345', '45678');return false" class=""><img src="https://MySite" title="Click to Expand" alt="!"></a>
</td>
<td>Closed </td>
<td>Jan 1, 2011 </td>
<td>Nov 30, 2011 </td>
<td>N/A </td>
<td>
xx/xxxx
<a href="#" onclick="view(this, event,'12345', '56789'); return false;" class=""><img src="https://MySite" title="Click to Expand"></a>
</td>
</tr>
它使用innerHTML
所以<tr>
标记之间的所有内容。它会在onClick
HTML数据周围被切断。
我最终会尝试获得的状态是&#34;已关闭&#34;在第4 td
但我无法尝试,因为我似乎没有完整的行html来浏览。
答案 0 :(得分:6)
Watches
窗口仅显示长字符串的一部分(尽管与Locals
窗口不同,它并不表示终止...
)。
例如,当我将监视放在变量t
中时:
Sub test()
Dim s As String, t As String
Dim i As Long
For i = 0 To 9
s = s & String(50, CStr(i))
Next i
t = s
End Sub
然后将值复制粘贴到记事本中我看到:
"0000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444
即使字符串显然更长。
代码本身的真正错误可能是由于Split
中字符串的区分大小写,以及分隔符<td>
与分隔符<TD>