3

次のことを行うコードを作成しました。

  1. sheet選択した特定のものにオートフィルタを適用しますworkbook
  2. 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 つずつからコピーすることを意味します。rowsautofiltered range

この問題を解決するにはどうすればよいですか? あなたの助けとあなたの答えに感謝します。

編集

これはワークシートのデータの例です

データ例

フィルターは Criteria1 (<> 60、<>50) および Criteria2 (<>1470、<>1450) に適用されます。

4

1 に答える 1