|
发表于 2022-6-26 19:14
|
显示全部楼层
本楼为最佳答案
不好意思,自己想的太複雜,請再測試看看,謝謝
Sub test()
Dim Arr, xD, Brr, xC%, xN$, xR&, T$, n&, i&
Set xD = CreateObject("Scripting.Dictionary")
With Sheets(2)
xC = .[b1]: xN = .[b2]: xR = .[b3]
End With
Arr = Sheets(1).[a1].CurrentRegion
ReDim Brr(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
T = Arr(i, xC + 1): If T <> xN Then GoTo 95
R = i + xR: If R > UBound(Arr) Then GoTo 95
n = n + 1: Brr(n, 1) = Arr(R, xC + 1)
95: Next
For i = 1 To n: xD(Brr(i, 1) & "") = xD(Brr(i, 1) & "") + 1: Next
With Sheets(2)
.[d2:e1000] = ""
.Range("d2:d" & xD.Count).NumberFormatLocal = "@"
.[d2].Resize(xD.Count, 1) = Application.Transpose(xD.keys)
With .Range("d2:e" & xD.Count + 1)
Arr = .Value
For i = 1 To UBound(Arr): Arr(i, 2) = xD(Arr(i, 1) & ""): Next
.NumberFormatLocal = "@"
.Value = Arr
End With
End With
End Sub
|
评分
-
查看全部评分
|