其中调用了个函数,大概和下面一组差不多Dim str, I%Dim AI(31) As SingleAR = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)一个算法print结果 (是错误的)这是第二种方法Dim ar(31) As SingleFor I = 0 To 31 ar(I) = I + 1print ar(i) '这个地方的一堆数字和上一组array中的一样 Next I一个算法print 结果(是对的)该怎么解决呢?如果能在线咨询就更好了~
Array函数的返回值是Variant型,所以它所赋值的数组也必须是Variant型的,即:Dim AR(31) 'As Variant是可以省略的AR = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)这样就没问题了,当然后续运算中要注意AR数组的元素都是Variant型补充:之所以Array的返回值是Variant型,是因为它的参数是可以各种类型混合的,比如:Array(1, "张三", True, 22.5, #2014-12-01#)这样的话就不可能把它赋值给一个指定具体类型(比如Single)的数组变量,只能是“万金油”类型的Variant!更正:Array不能赋值给固定数组,所以代码要改为:Dim AR() '或者 Dim ARAR = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)