这段vb代码解释

来源:百度知道 编辑:UC知道 时间:2024/07/04 14:43:52
Sub s1()
subs 0
End Sub
Sub s2()
subs 1
End Sub
Sub subs(ByVal F As Boolean)
Dim U(220) As String
Columns("C:Y").ClearContents
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
Next
Next
Next
m = 10: n = Int(220 / m + 0.5)
ReDim W(1 To m, 1 To n) As String
If F Then
ReDim V(T) As Single
For k = 1 To T
Randomize
V(k) = Rnd(1) * 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
Cells(1, j + 1) = .Text(j, "00")
Next
For i = 1 To m

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(