看流星社区

 找回密码
 注册账号
查看: 3224|回复: 2

[VB] VB里边怎么判断一个数组是否有效啊?

[复制链接]

该用户从未签到

发表于 2011-4-11 09:37:00 | 显示全部楼层 |阅读模式
我用for循环一个数组的时候
用ubound(数组名)
老提示数据类型不对什么的?

请问有没有办法在判断这个是一个数组之后再循环?

朋友们帮帮忙啊!谢谢

该用户从未签到

发表于 2011-4-11 09:37:11 | 显示全部楼层
Private  Declare  Function  SafeArrayGetDim  Lib  "oleaut32.dll"  (ByRef  saArray()  As  Any)  As  Long   
     
  'API判断数组为空或没有初始化   
     
  Sub  diag()   
  Dim  msg  As  String   
  Dim  arr1()  As  String,  arr2()  As  String,  arr3()  As  Date,  arr4()  As  Date,  arr5()  As  Range,  arr6()  As  Range   
  msg  =  "arr1  "  &  IIf(SafeArrayGetDim(arr1)  >  0,  "数组不为空!",  "数组为空!")   
  arr2  =  Split("一、二、三、四、五、六",  "、")   
  msg  =  msg  &  vbCrLf  &  "arr2  "  &  IIf(SafeArrayGetDim(arr2)  >  0,  "数组不为空!",  "数组为空!")   
  msg  =  msg  &  vbCrLf  &  "arr3  "  &  IIf(SafeArrayGetDim(arr3)  >  0,  "数组不为空!",  "数组为空!")   
  ReDim  arr4(1  To  100)   
  msg  =  msg  &  vbCrLf  &  "arr4  "  &  IIf(SafeArrayGetDim(arr4)  >  0,  "数组不为空!",  "数组为空!")   
  ReDim  arr6(1  To  256,  1  To  65536)   
  msg  =  msg  &  vbCrLf  &  "arr5  "  &  IIf(SafeArrayGetDim(arr5)  >  0,  "数组不为空!",  "数组为空!")   
  msg  =  msg  &  vbCrLf  &  "arr6  "  &  IIf(SafeArrayGetDim(arr6)  >  0,  "数组不为空!",  "数组为空!")   
  MsgBox  msg   
  End  Sub

该用户从未签到

发表于 2011-4-11 09:37:17 | 显示全部楼层
朋友,有没有定义数组大小阿,如果没有定义,在使用的时候,请
redim  数组名(数组大小)
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-19 07:10

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表