Private Sub Form_Load()
Text1.Text = "秦桧 贾以道 小德张 李莲英 李林甫 杨国忠 魏忠贤 高俅 童贯 陈世美 潘仁美 丁春秋 西门庆 楚留香 苏蓉蓉 郭靖 黄蓉 快活王 项少龙 杨过 小龙女 尹志平 展昭 包拯 公孙策 张龙 赵虎 王朝 马汉 白玉堂 褒姒 妲己 杨玉环 貂蝉 王昭君 蔡文姬"
End Sub
Private Sub Command1_Click()
Dim tNameText As String '名字列表(文本形式)
Dim tNameList() As String '名字列表,字符串数组
Dim tNameCount As Long '名字的数量
Dim tNameLength As Long '名字列表的最大下标(tNameCount-1)
Dim tNameIndex As Long '当前索引
Dim tSwapIndex As Long '交换索引
Dim tTempValue As String
Dim tOutCount As Long '输出姓名数量
Dim tOutLength As Long '输出最大下标
tOutCount = 6
tOutLength = tOutCount - 1
'输入字符串分割数组
tNameText = Text1.Text
tNameList() = Split(tNameText, " ") '分割输入列表为字符串数组,间隔符为空格
'给原始姓名列表乱序
tNameCount = UBound(tNameList()) + 1 '取名字数量
tNameLength = tNameCount - 1
For tNameIndex = 0 To tNameLength '如果改成tOutLength则是快速算法
tSwapIndex = Int(Rnd * tNameCount) '取小于tNameCount的随机数(在0到tNameLength之间)
'交换tNameList(tNameIndex)和tNameList(tSwapIndex)的值
tTempValue = tNameList(tNameIndex)
tNameList(tNameIndex) = tNameList(tSwapIndex)
tNameList(tSwapIndex) = tTempValue
Next
'摘取指定数量的元素
ReDim Preserve tNameList(tOutLength) 'Preserve关键字表示改变数组长度的时候保留原有内容。本程序这句的作用是缩短数组。
'合并输出列表
tOutText = Join(tNameList(), " ") '合并字符串数组为字符串,间隔符为空格
'输出
Text2.Text = tOutText
End Sub
温馨提示:答案为网友推荐,仅供参考