次のことを行うコードを作成しました。
sheet
選択した特定のものにオートフィルタを適用しますworkbook
autofiltered range
ヘッダー以外のデータを別のヘッダーにコピーしますworkbook
コードは次のとおりです。
m = 2
For i = 1 To work_book.Worksheets.Count
With work_book.Sheets(i)
If (.UsedRange.Rows.Count > 1) Then
'apply filters
.UsedRange.AutoFilter field:=2, Criteria1:=array_of_account_numbers, Operator:=xlFilterValues
.UsedRange.AutoFilter field:=1, Criteria1:=array_of_debit_or_credits, Operator:=xlFilterValues
'select only visible cells after autofilter is applied
On Error Goto a
m = destination_workbook.Sheets(1).UsedRange.Rows.Count + 1
Intersect(.UsedRange, .UsedRange.Offset(1)).SpecialCells(xlCellTypeVisible).Copy destination_workbook.Sheets(1).Range("A" & m)
a:
End If
End With
ただし、マクロは永続的にいくつかのゴミをコピーします。に加えてsheet
最初の 3 つずつからコピーすることを意味します。rows
autofiltered range
この問題を解決するにはどうすればよいですか? あなたの助けとあなたの答えに感謝します。
編集
これはワークシートのデータの例です
フィルターは Criteria1 (<> 60、<>50) および Criteria2 (<>1470、<>1450) に適用されます。