求解决!
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'
下标越界
求解决修改!谢谢 --------------------编程问答-------------------- 用 split 拆分字符串的时候 要注意检测下标 用UBOUND 检测下标后再处理 --------------------编程问答-------------------- 没有匹配出指定的字符串。 --------------------编程问答-------------------- 我刚研究VB。要怎么解决?这代码上怎么改? --------------------编程问答-------------------- 你的问题就像一道缺少条件的应用数学题。 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- --------------------编程问答--------------------
你有没有发现你缺了什么条件,所以这道题无解? --------------------编程问答-------------------- 你到现在都没有理解为什么我说“你的问题就像一道缺少条件的应用数学题”是什么意思。
说直白一点,你不但对你要解决的问题一无所知,连你要解决什么问题也一无所知。 --------------------编程问答-------------------- 这是为什么呢? --------------------编程问答-------------------- 加上几句:
Dim tmp() As String
tmp = Split(StrTxt, "$$$")
If Ubound(tmp) < Nom Then Exit Sub
...... --------------------编程问答-------------------- Split(Split(StrTxt, "$$$")
这个可能因为strtxt里面没有"$$$"而返回一个数组,但是这个数组只有一个元素,下标是0
所以如果你的输入参数Nom不是0,这种情况下Caption.Caption = Split(Split(StrTxt, "$$$")(Nom), "|")(0)必然出错
--------------------编程问答-------------------- 我这个是这样子的。这边是读取一个网址为html。里面写入文字的话如果有的话就读出来。如果没有的话最好为空。可是软件掉用的时候。打开软件。有联网的情况 下是正常。可是没有联网的话那么就提示出错了。。。或者找不到调用的那个网址的时候。 --------------------编程问答-------------------- 出错时因为数据,你对数据的各种可能考虑不足.
没有联网就没有合适的数据,没有合适的数据就造成调用的错误.
多几个if,改下程序结构 --------------------编程问答-------------------- 你看下代码之前是不是有这句
Option Base 1
这个的作用是定义数组下标从1开始,, 你读索引为 0的字符串肯定报下标越界! --------------------编程问答--------------------
下标从1开始,那么之前规定的整个数组下标都发生了变化.我觉得有点得不偿失.
并且 "option base 1"并不会影响split的返回.
不论split是否成功分割,都会返回下标是0字符串数组
所以最好还是对这个数组判断下
补充:VB , 基础类