- 帖子
- 262
- 主題
- 8
- 精華
- 0
- 積分
- 280
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- Office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- HK
- 註冊時間
- 2015-8-11
- 最後登錄
- 2025-3-24

|
刪去公式,使用VBA會更快:- Sub zz()
- Dim a, d As Object, b(), n&
- a = Sheets(1).Range("a2:d" & Sheets(1).[a1048576].End(3).Row)
- Set d = CreateObject("scripting.dictionary")
- With CreateObject("vbscript.regexp")
- .Pattern = "-\w$"
- For i = 1 To UBound(a)
- If Len(a(i, 3)) = 0 Then a(i, 3) = a(i, 1)
- k = a(i, 3)
- a(i, 3) = .Replace(k, "")
- d(a(i, 3)) = ""
- Next
- k = Join(d.keys, "|")
- .Pattern = k
- a = Sheets(2).[a1].CurrentRegion
- ReDim b(1 To UBound(a), 1 To UBound(a, 2))
- For i = 2 To UBound(a)
- If Len(a(i, 3)) > 0 Then k = a(i, 3) Else k = a(i, 1)
- If .test(k) Then
- n = n + 1
- For j = 1 To UBound(a, 2)
- b(n, j) = a(i, j)
- Next
- End If
- Next
- Sheets(3).[a1].CurrentRegion.Offset(1).Clear
- Sheets(3).[a2].Resize(n, 4) = b
- End With
- End Sub
複製代碼 |
-
-
zz.zip
(18.66 KB)
|