写一个函数来实现功能:随机生成一个长度为5~15位英文+数字组成的字符串。

要求:字符串按照 大写小写数字的顺序间隔排列,生成的字符串作为函数返回值传出。例如函数名为随机生成英文字母,调用这个函数名后返回了字符串"Ew2Tr1Yu6Vd4"
最新回答
深夜不及人心

2024-11-27 04:14:39

Function 生成随机长度英文加数字字符串(字符串长度)
If 字符串长度 < 5 or 字符串长度 > 15 Then
MsgBox "你输入的字符串长度不符合题目要求"
Exit Function
End If
生成数 = ""
余数 = 字符串长度 - (int(字符串长度 / 3)) * 3
Select Case 余数
Case 0
For int(字符串长度 / 3)
Randomize
随机数 = chr(Int((90 - 65 + 1) * Rnd + 65))
生成数 = 生成数 & 随机数
Randomize
随机数 = chr(Int((122 - 97 + 1) * Rnd + 97))
生成数 = 生成数 & 随机数
Randomize
随机数 = Int((9 - 1 + 1) * Rnd + 1)
生成数 = 生成数 & 随机数
Next
Case 1
For int(字符串长度 / 3)
Randomize
随机数 = chr(Int((90 - 65 + 1) * Rnd + 65))
生成数 = 生成数 & 随机数
Randomize
随机数 = chr(Int((122 - 97 + 1) * Rnd + 97))
生成数 = 生成数 & 随机数
Randomize
随机数 = Int((9 - 1 + 1) * Rnd + 1)
生成数 = 生成数 & 随机数
Next
Randomize
随机数 = chr(Int((90 - 65 + 1) * Rnd + 65))
生成数 = 生成数 & 随机数
Case 2
For int(字符串长度 / 3)
Randomize
随机数 = chr(Int((90 - 65 + 1) * Rnd + 65))
生成数 = 生成数 & 随机数
Randomize
随机数 = chr(Int((122 - 97 + 1) * Rnd + 97))
生成数 = 生成数 & 随机数
Randomize
随机数 = Int((9 - 1 + 1) * Rnd + 1)
生成数 = 生成数 & 随机数
Next
Randomize
随机数 = chr(Int((90 - 65 + 1) * Rnd + 65))
生成数 = 生成数 & 随机数
Randomize
随机数 = chr(Int((122 - 97 + 1) * Rnd + 97))
生成数 = 生成数 & 随机数
Case Else
MsgBox "出错啦"
End Select
End Function
Call 生成随机长度英文加数字字符串(15)
MsgBox 生成数
山木向海

2024-11-27 03:38:50

/*
写一个函数来实现功能:随机生成一个长度为5~15位英文+数字组成的字符串。
要求:字符串按照 大写小写数字的顺序间隔排列,生成的字符串作为函数返回值传出。例如函数名为随机生成英文字母,
调用这个函数名后返回了字符串 "Ew2Tr1Yu6Vd4"
*/
Dim length
Dim result
length = InputBox("请输入字符串长度:")
result = randStr(length)
//TracePrint length
If (result <> - 1 ) Then
MsgBox result
Else
TracePrint result
MsgBox "你输入的长度不符合要求"
End If
Function randStr(length)
If (length > 15 or length < 5) Then
randStr = -1
Else

randStrTemp=""

group_count =int(length / 3) //length完整组数:大写字母+小写字母+数字,是一组
rema = length mod 3 //length对3取余

//TracePrint group_count
//TracePrint rema

i=0
While(i<group_count) //以length完整组数作为循环次数
//函数_随机取数=Int((high - (low) + 1) * Rnd + (low))
//随机大写字母
Randomize
capital = chr(Int((90 - 65 + 1) * Rnd + 65))
//随机小写字母
Randomize
lowercase = chr(Int((122 - 97 + 1) * Rnd + 97))
//随机数字
Randomize
num = chr(Int((57 - 48 + 1) * Rnd + 48))

randStrTemp = randStrTemp + capital + lowercase + num

i=i+1 //修改循环变量
If (i=group_count) Then
Select Case rema
Case 1
//随机大写字母
Randomize
capital = chr(Int((90 - 65 + 1) * Rnd + 65))

randStrTemp = randStrTemp + capital
Case 2
//随机大写字母
Randomize
capital = chr(Int((90 - 65 + 1) * Rnd + 65))
//随机小写字母
Randomize
lowercase = chr(Int((122 - 97 + 1) * Rnd + 97))

randStrTemp = randStrTemp + capital + lowercase
End Select
End If
Wend

randStr = randStrTemp

End If
End Function