0
私はサマリーシートとデータシートを持っているこのプロジェクトで作業しています。毎週別々のレポートから生データをデータシートにドロップし、必要なものとフィルタを使ってフィルタしますサマリーシートに。異なるワークシートのセルとしての基準を持つVBAオートフィルタ。
コードの開始は、毎回新しい実行のためにセルをクリアするだけです。私が抱えている問題は、要約シートのセル値である1つのオートフィルタ基準です。ドロップダウンボックスで、変更されたときに別のデータをサマリーシートにコピーします。ここに私のコードです。事前にアドバイスをありがとう!
Sub Macro3()
Sheets("Summary").Select
Range("C5").Select
Selection.ClearContents
Range("C6").Select
Selection.ClearContents
Range("C10").Select
Selection.ClearContents
Range("C11").Select
Selection.ClearContents
Range("C16").Select
Selection.ClearContents
Range("C17").Select
Selection.ClearContents
Range("C21").Select
Selection.ClearContents
Range("C22").Select
Selection.ClearContents
Range("F11").Select
Selection.ClearContents
Range("F10").Select
Selection.ClearContents
Range("F6").Select
Selection.ClearContents
Range("F5").Select
Selection.ClearContents
Sheets("Data").Select
Range("K200000").Select
Selection.ClearContents
Range("J200000").Select
Selection.ClearContents
i = Sheets("Summary").Range("i2")
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=13, Criteria1:=i
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=7, Criteria1:="<>"
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=11, Criteria1:="<>0"
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:=i
Range("K200000").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-199996]C:R[-1]C)"
Range("J200000").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(2,R[-199996]C:R[-1]C)"
Selection.NumberFormat = "#,##0.0"
Selection.NumberFormat = "#,##0"
Selection.Copy
Sheets("Summary").Select
Range("C5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:="<>" & i
Range("j200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=7
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=11
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=12, Criteria1:= _
"<>"
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:=i
Range("j200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C16").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:="<>" & i
Range("j200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=12
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=4, Criteria1:="<>0"
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:=i
Range("j200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("F5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("F10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15, Criteria1:="<>" & i
Range("j200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("F6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
Range("k200000").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("F11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=13
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=4
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=15
Sheets("Summary").Select
End Sub
あなたのコードがあるに
を変更してみてください(申し訳ありませんが、私はあなたのことを伝えるために持っていること)、ほとんど読めないと私は非常にあなたが '' .Select'を避けるためにお勧めします。 Activate'、 'ActiveSheet'、' .Selection'です。あなたがそれらを避ける方法をGoogleの場合は、多くのチュートリアルを見つけるでしょう。 **これらを避けることは、メンテナンス可能なコードを手に入れるための最初の作業でなければならないので、問題を避けることができ、コード内でエラーを見つけるのがはるかに簡単です。**これにより、コードが半分以下に減少します。 –