- 小菜G
-
Sub subs(ByVal F As Boolean)
Dim U(220) As String
Columns("C:Y").ClearContents ‘清除C:Y的公式
T = 0
For x = 0 To 9
For y = x To 9
For z = y To 9
T = T + 1 ‘
U(T) = x & y & z ‘为数组赋一个三位数的值,类似99乘法表,999乘法表
Next
Next
Next
m = 10: n = Int(220 / m + 0.5) ‘就是想把n赋22,保护程序不容易读懂
ReDim W(1 To m, 1 To n) As String 定义二维数值
If F Then ‘判断F
ReDim V(T) As Single ‘重定义数值V按999乘法表的个数
For k = 1 To T
Randomize
V(k) = Rnd(1) * 1000 ‘为数组按随机数*1000赋值
Next
For i = 1 To T
For j = 1 To T - 1
If V(j) > V(j + 1) Then ‘对数组排序
s = V(j): V(j) = V(j + 1): V(j + 1) = s
s = U(j): U(j) = U(j + 1): U(j + 1) = s
End If
Next
Next
End If
With WorksheetFunction
For j = 1 To n ‘第一行单元格赋值,22个
Cells(1, j + 1) = .Text(j, "00")
Next
For i = 1 To m ‘第1列单元格赋值,10个
Cells(i + 1, 1) = .Text(i, "00")
For j = 1 To n
s = (i - 1) * n + j
W(i, j) = U(s) ‘数组wj赋值填对应999表数据结果
Next
Next
- 皮皮
-
Sub s1()
subs 0 "False
End Sub
Sub s2()
subs 1 "True
End Sub
Columns("C:Y").ClearContents ‘清除C到Y列的内容,保留格式等
m = 10: n = Int(220 / m + 0.5) ‘除以m四舍五入
For i = 1 To m
Cells(i + 1, 1) = .Text(i, "00")
For j = 1 To n
s = (i - 1) * n + j
W(i, j) = U(s) ‘数组U下标会出错,s最大4百多
Next
Next