Private Sub GetCaption(ByVal StrTxt As String, Caption As Label, Nom As Integer) '滚动文字
Caption.Caption = Split(Split(StrTxt, "$$$")(Nom), "|")(0)      '运行后此行出的错误
Caption.ToolTipText = Split(Split(StrTxt, "$$$")(Nom), "|")(0)
Caption.Tag = Split(Split(StrTxt, "$$$")(Nom), "|")(1)这个我是在软件中读取一个网址为滚动新闻的。运行后就提示出错
实时错误'9'
下标越界求解决修改!谢谢

解决方案 »

  1.   

    用 split 拆分字符串的时候 要注意检测下标 用UBOUND 检测下标后再处理
      

  2.   

    本帖最后由 bcrun 于 2012-02-29 20:29:05 编辑
      

  3.   

    加上几句:Dim tmp() As Stringtmp = Split(StrTxt, "$$$")If Ubound(tmp) < Nom Then Exit Sub......
      

  4.   

    Split(Split(StrTxt, "$$$")
    这个可能因为strtxt里面没有"$$$"而返回一个数组,但是这个数组只有一个元素,下标是0
    所以如果你的输入参数Nom不是0,这种情况下Caption.Caption = Split(Split(StrTxt, "$$$")(Nom), "|")(0)必然出错
      

  5.   

    我这个是这样子的。这边是读取一个网址为html。里面写入文字的话如果有的话就读出来。如果没有的话最好为空。可是软件掉用的时候。打开软件。有联网的情况 下是正常。可是没有联网的话那么就提示出错了或者找不到调用的那个网址的时候。
      

  6.   

    你看下代码之前是不是有这句Option Base 1这个的作用是定义数组下标从1开始,, 你读索引为  0的字符串肯定报下标越界!
      

  7.   

    下标从1开始,那么之前规定的整个数组下标都发生了变化.我觉得有点得不偿失.
    并且 "option base 1"并不会影响split的返回.
    不论split是否成功分割,都会返回下标是0字符串数组
    所以最好还是对这个数组判断下