- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 6# b9208
是這樣嗎?- Option Explicit
- Sub Ex() 'AdvancedFilter 方法 (進階篩選)
- Dim Rng As Range, CopyTo As Range, i As Integer
- Dim A As String, B As String
- Set Rng = Sheets("資料").Range("a5").CurrentRegion '進階篩選的: 資料清單範圍(資料庫)
- 'CurrentRegion 屬性 傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。唯讀。
- With Sheets("單位")
- Set CopyTo = .Range(.[A19], .[A19].End(xlToRight)) '指定被複製列的目標範圍
- CopyTo.CurrentRegion.Interior.ColorIndex = 0 '儲存格底色: 設為無
- Rng.AdvancedFilter xlFilterCopy, .Range(.[c3], .[c3].End(xlDown)), CopyTo, True
- '.Range(.[C3], .[C3].End(xlDown)) '進階篩選:準則範圍
- End With
- With CopyTo.CurrentRegion
- .Sort key1:=.Cells(6), key2:=.Cells(3), key3:=.Cells(8), Header:=xlYes
- For i = 2 To .Rows.Count - 1
- A = .Rows(i).Cells(3) & .Rows(i).Cells(6) & .Rows(i).Cells(8)
- B = .Rows(i + 1).Cells(3) & .Rows(i + 1).Cells(6) & .Rows(i + 1).Cells(8)
- If A = B Then
- .Rows(i).Interior.Color = vbYellow '儲存格底色: 設為黃色
- .Rows(i + 1).Interior.Color = vbYellow
- End If
- Next
-
- End With
- 'key1:=.Cells(6) '第一個排序欄位: .Cells(6) ->單位編碼 [F19]
- 'key2:=.Cells(3) '第二個排序欄位: .Cells(3) ->日期 [C19]
- 'key3:=.Cells(8) '第三個排序欄位: .Cells(8) ->姓名 [H19]
- End Sub
複製代碼 |
|