- 帖子
- 154
- 主題
- 1
- 精華
- 0
- 積分
- 200
- 點名
- 3
- 作業系統
- windwos 7
- 軟體版本
- 64bit
- 閱讀權限
- 20
- 註冊時間
- 2017-5-29
- 最後登錄
- 2026-7-8
|
本帖最後由 quickfixer 於 2020-2-22 08:57 編輯
回復 3# n7822123
謝謝教學,用你教的方法
改寫前跑3分鐘,改寫後6秒左右跑完 ^^
Sub test2()
Dim m As Integer, n As Integer, c As Double, t(1 To 39) As Integer, r As Double, arr()
For i = 1 To 39: t(i) = i: Next i
m = 39
n = 5
t0 = Timer
c = Cmn(m) / (Cmn(m - n) * Cmn(n))
ReDim arr(1 To c, 1 To n)
Application.ScreenUpdating = False
For i = 1 To m
For j = i + 1 To m
For k = j + 1 To m
For l = k + 1 To m
For p = l + 1 To m
r = r + 1
arr(r, 1) = t(i)
arr(r, 2) = t(j)
arr(r, 3) = t(k)
arr(r, 4) = t(l)
arr(r, 5) = t(p)
Next p
Next l
Next k
Next j
Next i
Range(Cells(1, 1), Cells(r, 5)) = arr()
Application.ScreenUpdating = True
MsgBox r & "組:使用時間" & Timer - t0 & "秒"
End Sub
Function Cmn(x As Integer) As Double
Dim i As Integer, y As Double
y = 1
For i = 1 To x
y = y * i
Next
Cmn = y
End Function |
|