VBA切断字符串?

SBB*_*SBB 1 excel vba excel-vba

我公开承认我对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), "&nbsp;", "")
Run Code Online (Sandbox Code Playgroud)

使用IE对象导航到一个页面,它正在查看所有的tr.在tr它找到的内部,它正在寻找一个字符串是否存在.

如果它找到这个字符串,它会进入IF statement我被卡住的地方.

到这里之后,我检查了varitem.innerHTML它的值,它正在切换大约250个字符,就在实际行数据的中间.

我试图找出是否有任何限制,为什么价值innerHTML不是HTML我希望看到的全部内容,我正在浏览它正在抓取的网页.

当我添加varItem到手表并查看innerHTML对象时,此数据也会被截断.

任何人都可以对我能够在这个问题上发布的一些代码有所了解吗?我的根本问题是我没有得到strDCStatus我所期望的,因为它没有搜索整行数据,因为有些东西正在被截止.

更新

这是我能提供的最好的内容TR:

<tr class="">
  <td>
    &nbsp;
  </td>
  <td>2 Blah Blah &nbsp;</td>
  <td class="AccountNumber">
    xxxxxxxxxxxx1234 &nbsp;&nbsp;
    <a href="#" onclick="view(this, event,'12345', '45678');return false" class=""><img src="https://MySite" title="Click to Expand" alt="!"></a>
    &nbsp;
  </td>
  <td>Closed&nbsp;</td>
  <td>Jan 1, 2011&nbsp;</td>
  <td>Nov 30, 2011&nbsp;</td>
  <td>N/A&nbsp;</td>
  <td>
    xx/xxxx &nbsp;&nbsp;
    <a href="#" onclick="view(this, event,'12345', '56789'); return false;" class=""><img src="https://MySite" title="Click to Expand"></a>
    &nbsp;
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

它正在使用标签innerHTML之间的所有内容<tr>.它正在围绕onClickHTML数据切断.

我最终会尝试获得的状态是在第4次"关闭" td但我无法尝试,因为我似乎没有完整的行html来查看.

Joh*_*man 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
Run Code Online (Sandbox Code Playgroud)

然后将值复制粘贴到记事本中,我看到:

"0000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444
Run Code Online (Sandbox Code Playgroud)

即使字符串显然更长.

代码本身的真正错误可能是由于字符串的区分大小写Split以及分隔符<td>与分隔符不同的结果<TD>