dポイントプレゼントキャンペーン実施中!

質問です。
VBAを学び始めたばかりで全然わからなくなってしまいました。。。。。

オートフィルターでデータを抽出。
別シートに張り付け
最終行に小計行を入れる。
またオートフィルターで再抽出。
別シートの最終行の下に張り付け
……
を繰り返し行いたいのですが、
どうも、1回目の抽出データを何度も張り付けてしまいます。。

なんででしょうか?

教えて頂けると大変助かります。
よろしくお願い致します。

下記 私が作ったVBAです。

Sub フィルタ()

Sheets("sheet2").Select

Sheets("Sheet2").Range("A1").AutoFilter field:=9, Criteria1:="USD"
Sheets("Sheet2").Range("A1").AutoFilter field:=4, Criteria1:="<>"
Sheets("Sheet2").Range("A1").AutoFilter field:=1, Criteria1:="A", operator:=xlOr, Criteria2:="B"
Range("A1").CurrentRegion.Copy Sheets("Sheet3").Range("A1")
Worksheets("sheet2").Range("A1").AutoFilter


Sheets("sheet3").Select

Dim n As Long

n = Cells(Rows.Count, "I").End(xlUp).Row + 1
Range("I" & n).Select
ActiveCell.FormulaR1C1 = "小計"

Sheets("sheet2").Range("A1").AutoFilter field:=1, Criteria1:="C"
Range("A1").CurrentRegion.Copy Sheets("sheet3").Cells(Rows.Count, 1).End(xlUp).Offset(2, 0)


End Sub

A 回答 (1件)

こんにちは



2度目のコピーの際に、
>Range("A1").CurrentRegion.Copy~~
となさっていますが、コピー元の対象シートはSheet3になっていると思います。
(省略した場合、Activesheetとみなされる)
この結果、1度目にコピーされた内容を再コピーするようになっているものと思います。

複数のシートを扱う場合は、シートを明示する習慣をつけておいたほうがよろしいでしょう。
    • good
    • 1
この回答へのお礼

解決しました

ありがとうございます⭐︎
解決しました!!

習慣づけ頑張ります^ ^

本当にありがとうございました!

お礼日時:2020/07/10 21:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています