- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2026-5-26
|
回復 15# av8d
請測試看看,謝謝
Sub test()
Dim Arr, xD, Brr(1 To 1000, 1 To 4), i&, n%, sh%, j%, T$
Set xD = CreateObject("Scripting.Dictionary")
For sh = 2 To Sheets.Count
With Sheets(sh)
Arr = .[a1].CurrentRegion
For i = 2 To UBound(Arr)
T = Arr(i, 1) & "|" & Arr(i, 2) & "|" & Arr(i, 3): xD(T) = xD(T) + 1
Next
End With
Next
For sh = 2 To Sheets.Count
With Sheets(sh)
Arr = .[a1].CurrentRegion
For i = 2 To UBound(Arr)
T = Arr(i, 1) & "|" & Arr(i, 2) & "|" & Arr(i, 3)
If xD(T) > 1 Then
n = n + 1: For j = 1 To 3: Brr(n, j) = Arr(i, j): Next
Brr(n, 4) = Sheets(sh).Name
End If
Next
End With
Next
If n > 0 Then
With Sheets("總表")
.[a1].CurrentRegion.Offset(1) = ""
.Range("a2").Resize(n, 4) = Brr
End With
End If
End Sub |
|