- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 1# luke - Sub 篩選()
- Set d = CreateObject("Scripting.Dictionary")
- With sheet1
- For Each a In .Range(.[B1], .Cells(.Rows.Count, 2).End(xlUp))
- If a.Interior.ColorIndex = 6 Then d(a.Value) = Array(a, a.Offset(, 1), a)
- Next
- With .Range("L1")
- .CurrentRegion = ""
- .Resize(d.Count, 3) = Application.Transpose(Application.Transpose(d.items))
- .Resize(d.Count, 3).Sort .Cells(1, 1), xlAscending, Header:=xlNo
- End With
- End With
- End Sub
- Sub 取代()
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- With sheet1
- With .Range("L1").CurrentRegion
- For Each a In .Columns(1).Cells
- d(a.Value) = a.Offset(, 2)
- d1(a.Offset(, 2).Value) = a.Value
- Next
- End With
- For Each a In .Range(.[B1], .Cells(.Rows.Count, 2).End(xlUp))
- If d1.exists(a.Value) And a.Interior.ColorIndex <> 6 Then MsgBox "資料重複": Exit Sub
- Next
- For Each a In .Range(.[B1], .Cells(.Rows.Count, 2).End(xlUp))
- If d.exists(a.Value) And a.Interior.ColorIndex = 6 Then a.Value = d(a.Value)
- Next
- MsgBox "取代完成"
- End With
- End Sub
複製代碼 |
|