vb数组重写问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:55:48
自己想数组写一个随机码函数
代码如下:
Function GetValidCode(paslen)
str = "0,1,2,3,4,5,6,7,8,9"
arr=Split(str,",")
Randomize()
For i = 0 To paslen - 1
randomnum = Int((UBound(arr) - LBound(arr)) * Rnd())
ValidCode =ValidCode & arr(randomnum)
arr = ResetArray(str, ",", arr(randomnum)) ’这句数组重新赋值出现了错误,提示:该数组为定长的或临时被锁定: 'arr'
Next
GetValidCode = ValidCode
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function

修改如下:
Function GetValidCode(paslen)
mStr = "0,1,2,3,4,5,6,7,8,9"
arr = Split(mStr, ",")
Randomize
For i = 0 To paslen - 1
randomnum = Int((UBound(arr) - LBound(arr)) * Rnd())
ValidCode = ValidCode & arr(randomnum)
arr = ResetArray(mStr, ",", arr(randomnum))
Next
GetValidCode = ValidCode
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ResetArray(Old_mStr, seperator, flag)
mStr = Old_mStr
pos = InStr(mStr, flag)
mStr = Mid(mStr, 1, pos - 1) & Mid(mStr, pos + 2)
ResetAr