感謝各位,請問我的思路是
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不是太精,只是稍微懂點,自學的,所以獻丑了各位
感謝
uj5u.com熱心網友回復:
假如上面陣列是五個數,那么通過亂數除以5后產生的余數為0,1,2,3,4這幾個數正是陣列的下標,由下標去獲取陣列的內容,不可行嗎?uj5u.com熱心網友回復:
如果你認為陣列中的 11, 22, 44 也是字串的話:MsgBox a(Int(rnd()*5))
否則:
strTmp = "12"
Do While IsNumeric(strTmp)
strTmp = a(Int(rnd()*5))
Loop
MsgBox strTmp
控制概率也是可行的,看你要怎樣控制。
uj5u.com熱心網友回復:
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
'……
uj5u.com熱心網友回復:
這很簡單將陣列中是數字的裝入一個新的陣列
然后用 新陣列(Int(Rnd() * UBound(新陣列))) 得到一個隨機的元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/136354.html
標籤:VB基礎類
上一篇:VB呼叫存盤程序 回傳結果集問題
