- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 3# duck_simon
試試看- Option Explicit
- Sub Ex()
- Dim Rng(1 To 3) As Range, i As Integer, ii As Integer, iii As Integer
- Dim Msg(1 To 5) As Integer
- Dim MsgAll(1 To 19) As Integer
- With Sheet1
- Set Rng(1) = .Range("G1:K" & .Cells(.Rows.Count, "G").End(xlUp).Row) 'G:K 的範圍
- For i = 20 To Rng(1).Rows.Count '第20列開始
- Set Rng(2) = Rng(1).Rows(i)
- Set Rng(3) = Rng(2).Offset(-19).Resize(19) '往上19列的範圍
- Erase MsgAll '紀錄19列中的 Msg
- 'Erase 陳述式 重新初始化固定大小陣列的元素 , 並釋放動態陣列的儲存空間
- For ii = 1 To 19
- Erase Msg
- For iii = 1 To 5
- If Application.CountIf(Rng(3).Rows(ii), Rng(2).Cells(iii)) Then Msg(iii) = 1 '記錄每一列的相同數
- Next
- If Application.Sum(Msg) >= 4 Then MsgAll(ii) = 1
- Next
- If Application.Sum(MsgAll) >= 3 Then
- Rng(2).Cells(1, iii) = 1
- Else
- Rng(2).Cells(1, iii) = 0
- End If
- Next
- End With
- End Sub
複製代碼 |
|