ilih 发表于 2011-4-11 09:37:00

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

我用for循环一个数组的时候
用ubound(数组名)
老提示数据类型不对什么的?

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

朋友们帮帮忙啊!谢谢

蓝色的忧郁 发表于 2011-4-11 09:37:11

PrivateDeclareFunctionSafeArrayGetDimLib"oleaut32.dll"(ByRefsaArray()AsAny)AsLong   
   
'API判断数组为空或没有初始化   
   
Subdiag()   
DimmsgAsString   
Dimarr1()AsString,arr2()AsString,arr3()AsDate,arr4()AsDate,arr5()AsRange,arr6()AsRange   
msg="arr1"&IIf(SafeArrayGetDim(arr1)>0,"数组不为空!","数组为空!")   
arr2=Split("一、二、三、四、五、六","、")   
msg=msg&vbCrLf&"arr2"&IIf(SafeArrayGetDim(arr2)>0,"数组不为空!","数组为空!")   
msg=msg&vbCrLf&"arr3"&IIf(SafeArrayGetDim(arr3)>0,"数组不为空!","数组为空!")   
ReDimarr4(1To100)   
msg=msg&vbCrLf&"arr4"&IIf(SafeArrayGetDim(arr4)>0,"数组不为空!","数组为空!")   
ReDimarr6(1To256,1To65536)   
msg=msg&vbCrLf&"arr5"&IIf(SafeArrayGetDim(arr5)>0,"数组不为空!","数组为空!")   
msg=msg&vbCrLf&"arr6"&IIf(SafeArrayGetDim(arr6)>0,"数组不为空!","数组为空!")   
MsgBoxmsg   
EndSub

gggxxx 发表于 2011-4-11 09:37:17

朋友,有没有定义数组大小阿,如果没有定义,在使用的时候,请
redim数组名(数组大小)
页: [1]
查看完整版本: VB里边怎么判断一个数组是否有效啊?