- 帖子
- 254
- 主題
- 6
- 精華
- 0
- 積分
- 310
- 點名
- 0
- 作業系統
- W10
- 軟體版本
- Excel 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2019-6-16
- 最後登錄
- 2025-6-21
|
本帖最後由 軒云熊 於 2021-3-5 22:04 編輯
回復 7# mdr0465
建議你用 ML089版大 的修改 剛才測試 資料過多的話 不會太慢...而且邏輯很清楚- Sub test()
- Dim D As Object, R, x, k
- Application.ScreenUpdating = False
- [A2:A10000].EntireRow.Interior.ColorIndex = xlNone
- [H2:J10000].Clear
- Set D = CreateObject("Scripting.Dictionary")
- For Each R In Range("D1").CurrentRegion.Columns(4).Cells
- R.Interior.ColorIndex = xlNone
- If Not D.Exists(R.Value) Then
- Set D(R.Value) = R
- Else
- Set D(R.Value) = Union(D(R.Value), R)
- End If
- Next
- [H1] = "電話重覆儲存格位置"
- [I1] = "對應場的名稱"
- For Each R In D.KEYS
- If D(R).Cells.Count > 1 Then
- D(R).EntireRow.Interior.ColorIndex = 6
- For Each x In D(R)
- x位置 = ""
- x場地 = ""
- For Each k In D(R)
- If x.Address <> k.Address Then
- x位置 = x位置 & "," & k.Address(0, 0)
- x場地 = x場地 & "," & k.Offset(0, -3)
- End If
- Next
- x.Offset(0, 2) = "Y"
- x.Offset(0, 4) = Mid(x位置, 2, 99)
- x.Offset(0, 5) = Mid(x場地, 2, 99)
- Next
- End If
- Next
- Application.ScreenUpdating = True
- End Sub
複製代碼 |
|