Arrays vbscript函数中数组的扩展

Arrays vbscript函数中数组的扩展,arrays,vbscript,Arrays,Vbscript,我发现了使用大小写字符的方法。 我想将它扩展到包括数字——我尝试添加额外的几行(max3和min3) ,但我不确定如何更改数组以允许使用新变量 Function GenerateRandomString(StrLen,upper,lower,numeric) Dim charCase ' ASCII: Lowercase Alpha Characters max=122 min=97 ' ASCII: Capital Alpha Characters

我发现了使用大小写字符的方法。 我想将它扩展到包括数字——我尝试添加额外的几行(max3和min3) ,但我不确定如何更改数组以允许使用新变量

Function GenerateRandomString(StrLen,upper,lower,numeric)
    Dim charCase
    ' ASCII: Lowercase Alpha Characters
    max=122
    min=97
    ' ASCII: Capital Alpha Characters
    max2=90
    min2=65

    //  THIS BELOW IS WHAT I ADDED:
    ' ASCII: numeric Characters
    max3=57
    min3=49
    // END ADD
    

    For i=0 To (StrLen-1)
        Randomize
        charCase = Array((max-min+1)*Rnd+min,(max2-min2+1)*Rnd+min2)   <!-- Not sure how to change this?
        myStr = myStr & Chr(int(charCase(int(Rnd*2))))
    Next
   
    GenerateRandomString = myStr
End Function   
Function GenerateRandomString(StrLen、upper、lower、numeric)
暗焦
'ASCII:小写字母字符
最大值=122
最小值=97
'ASCII:大写字母字符
max2=90
min2=65
//以下是我补充的内容:
'ASCII:数字字符
max3=57
min3=49
//结束添加
对于i=0到(StrLen-1)
随机化

charCase=Array((max-min+1)*Rnd+min,(max2-min2+1)*Rnd+min2)代码创建一个包含2个值的数组,然后选择其中一个值。最简单的解决方案是向数组中添加第三个值:

Randomize
For i=0 To (StrLen-1)
    charCase = Array((max - min + 1) * Rnd + min, _
                     (max2 - min2 + 1) * Rnd + min2, _
                     (max3 - min3 + 1) * Rnd + min3)
    myStr = myStr & Chr(int(charCase(int(Rnd * 3))))
Next
另一个选项是创建一个包含所需值的字符串,并使用该字符串:

letters ="0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz"
For i=0 To (StrLen-1)
    ' Pick a random letter from the string and add to the result
    myStr = myStr & Mid(letters, int(Rnd * Len(letters)) + 1, 1)
Next
使用第二个选项,我有时会收到以下错误:
无效的过程调用或参数:“Mid”
-指的是
myStr=myStr&Mid(字母,int(Rnd*Len(字母)),1)
。知道那可能是什么吗?对不起,
int(Rnd*Len(字母))
将生成一个数字
n
其中
0