Randomize
j = Int((UBound(aryC) - LBound(aryC) + 1) * Rnd + LBound(aryC))
i = aryC(j)运行时, 最后一行 i = aryC(j) 有时会出现下标越界的错误, 猜测是随机数取值不正确, 不过这公式是在MSDN上照抄的, 不明白怎么回事, 请各位指点一下, 非常感谢.

解决方案 »

  1.   

    。。先叹息一声Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。msdn说得很清楚,兄弟怎么回事嘛,怎么把一个数组放到这里了。如果你要生成介于1-10之间的随机数,则如下:
    j=Int((10-1+1)*Rnd+1)
    j就是你要的随机数,这里没数组什么事儿
      

  2.   

    抱歉没说明白 我是想返回数组aryC 内随机一项的内容 该怎么做?
      

  3.   

    如果 aryC 数组是连续的话 程序应该没问题,建议调试一下,看看出错的时候 j的值,UBound(aryC) 和 LBound(aryC) 的值,再不行查看一下 aryC 里面的内容。
      

  4.   

    试了半天, 发现果然如 baoaya(点头)(see my fly) 所说, 传过来的 aryC 有时候会出状况, 不过还没找到原因, 呵呵. 各谢各位的指点.