VB 中如何判断动态数组定义了数组大小没有?

比如我定义了一个动态数组dima()然后中间有一大堆代码,代码根据其它情况,有可能定义了a的大小:redima(N),也有可能没有定义它的大小。那到最后,我用什么语句能得... 比如我定义了一个动态数组 dim a()
然后中间有一大堆代码,代码根据其它情况,有可能定义了 a 的大小: redim a(N),也有可能没有定义它的大小。

那到最后,我用什么语句能得知 a 有没有被定义过大小?

试了 Ubound(a),但如果没定义过的话,会提示下标越界。
第一个回答中的方法不可取。因为如果我在其它地方的代码上错误地读取了过大的下标,也是跟没定义就 Ubound(a) 一样同样发生代号为 9 的下标越界错误。但在运行的时候,根本不知道这个错误是因为真的引用了错误的下标产生的,还是在用 Ubound(a) 测试有没有定义过的时候产生的。
展开
 我来答
lyd963
2008-08-01 · 超过30用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:75.7万
展开全部
dim a()
dim str as string
str=join(a,",")
if lenb(str)=0 then
'lenb(str)=0说明没有定义数组a,否则lenb(str)返回的应该是数组内值和分隔值的“,”的总长度,如果数组为空,那么lenb(str)返回的数字应该就是数组的大小。
endif
湘湖泛舟
2008-07-31 · TA获得超过1076个赞
知道大有可为答主
回答量:833
采纳率:0%
帮助的人:898万
展开全部
on error resume next
bbb=Ubound(a)
if err.number=??? then '捕捉错误代码加以处理
.....

*****************
err.number =0
on error resume next
bbb=Ubound(a)
if err.number=??? then '捕捉错误代码加以处理
.....
end if
err.number =0
on error goto 0 '停止忽略错误

处理完了就关闭呀,
否则您就要优化你的程序,不犯这种错误.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caiyiheng_ai
2008-07-31 · TA获得超过188个赞
知道小有建树答主
回答量:885
采纳率:0%
帮助的人:0
展开全部
ubound 下线是多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式