- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2011-7-3 12:47 編輯
- 回復 5# lincsn
是這樣嗎?
修改 oobird版主的程式如下- Sub Lottery()
- Dim B1%, B2%, B3%, ball%, m&, P$
- Dim arr()
- ball = 49
- With ActiveSheet
- P = Join(Array(.[D1].Text, .[D2].Text, [D3].Text), ",") '三個數字"00"的格式字串
- For B1 = 1 To ball - 2
- For B2 = B1 + 1 To ball - 1
- For B3 = B2 + 1 To ball
- If InStr(P, Format(B1, "00")) Or InStr(P, Format(B2, "00")) Or InStr(P, Format(B3, "00")) Then
- m = m + 1
- ReDim Preserve arr(1 To 3, 1 To m)
- arr(1, m) = B1
- arr(2, m) = B2
- arr(3, m) = B3
- End If
- Next B3, B2, B1
- ActiveSheet.[a1].Resize(m, 3) = Application.Transpose(arr)
- End With
- End Sub
複製代碼
資料輸入工作表 系統須處裡
1樓的程序中每次迴圈中有將資料輸入工作表
ActiveSheet.Cells(Row, 1).Value = B1
ActiveSheet.Cells(Row, 2).Value = B2
ActiveSheet.Cells(Row, 3).Value = B3
系統須處裡三次
速度會加快 :
ActiveSheet.[a1].Resize(m, 3) = Application.Transpose(arr)
一次將資料輸入工作表 系統只須處裡一次
|
|