感谢各位,请问我的思路是
dim a()
a是个数组内容为(11,22,aa,44,bb)5个元素,假设
每次执行的话随机得到其中一个元素,而不是其中一个数字。也就是说要字符串不要数字。
我试过了rnd但是每次都乱七八糟的,而且是数字不是字符串。
请各位给个代码要是能控制几率就更好了。。
我之前RND每次得到的结果好像都是最高和最低范围内的数,而不是5个其中之一,比如上限55,下限11
中间有22,33,44
也就是
(11,22,33,44,55)
我想得到随机其中一个,每次都是出个什么25,36,48,15这种
小弟VB不是太精,只是稍微懂点,自学的,所以献丑了各位
感谢

解决方案 »

  1.   

    如果你认为数组中的 11, 22, 44 也是字符串的话:MsgBox a(Int(rnd()*5))否则:
    strTmp = "12"
    Do While IsNumeric(strTmp)
        strTmp = a(Int(rnd()*5))
    Loop
    MsgBox strTmp控制概率也是可行的,看你要怎样控制。
      

  2.   

    Private Sub Command1_Click()
    Dim a(4) As Variant
    Dim i As Long
        a(0) = 11
        a(1) = 22
        a(2) = "aa"
        a(3) = 44
        a(4) = "bb"
        i = CLng(Rnd * 5)
        Debug.Print a(i), TypeName(a(i))
    End Sub
    'bb            String
    ' 44           Integer
    ' 44           Integer
    ' 22           Integer
    'aa            String
    'bb            String
    ' 11           Integer
    'bb            String
    'bb            String
    'bb            String
    ' 11           Integer
    'aa            String
    'bb            String
    '……
      

  3.   

    这很简单
    将数组中是数字的装入一个新的数组
    然后用 新数组(Int(Rnd() * UBound(新数组))) 得到一个随机的元素。