- 帖子
- 13
- 主題
- 0
- 精華
- 0
- 積分
- 63
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 365
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2022-2-1
- 最後登錄
- 2024-11-20
|
回復 5# Andy2483
試試進階篩選- Option Explicit
- Dim Rng(1 To 5) As Range
- Sub 項相分類重整()
- 設定
- 進階篩選
- End Sub
- Private Sub 設定()
- Set Rng(1) = Sheets("分類帳").Range("A1").CurrentRegion
- With Sheets("結果")
- .Cells.Clear
- Set Rng(2) = .[Z1] '存放明細科目_幣別攔 不重復的項目
- Set Rng(5) = .[A1] '存放每次篩選的位置
- End With
- Rng(1).Range("A1").Copy Rng(2)
- Rng(1).AdvancedFilter xlFilterCopy, Rng(2).Cells.Resize(2), Rng(2), True ' "明細科目_幣別"篩選不重復的項目
- Set Rng(3) = Rng(2).Offset(, 1) '篩選的準則範圍
- Rng(1).Range("A1,D1").Copy Rng(3) '準則的欄位
- Set Rng(4) = Rng(3).Offset(, 3) '指定被複製列的目標範圍
- End Sub
- Private Sub 進階篩選()
- Dim i As Integer, R As Range
- Rng(3).Range("B2") = "=" & """<>" & " 本 日 合 計""" '填[摘要]入準則 條件
- i = 2
- Do While Rng(2).Cells(i) <> ""
- Rng(4).CurrentRegion.Clear
- Rng(3).Range("A2") = Rng(2).Cells(i) '填入[明細科目_幣別]準則條件
- Rng(1).AdvancedFilter xlFilterCopy, Rng(3).Resize(2, 2), Rng(4) '進階篩選'
- Rng(5) = Rng(2).Cells(i).Value '標頭 篩選的[明細科目_幣別]
- Rng(4).CurrentRegion.Offset(, 1).Copy Rng(5).Offset(1) '資料的範圍 .Offset(, 1) 向右移動一攔 **不需要 [明細科目_幣別]欄
- Set Rng(5) = Rng(5).End(xlDown).Offset(2)
- i = i + 1
- Loop
- End Sub
複製代碼 |
|