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

ファイルのB列の値から0以外の値をオートフィルターで抽出し、値を、別のファイルのD列の一番下に貼りつけるマクロを作っていますがうまくいきません。

今作ったのは


Sub macro1()

If ActiveSheet.AutoFilterMode = False Then
Range("A:G").Select
Selection.AutoFilter
Else
Selection.AutoFilter
Range("A:G").Select
Selection.AutoFilter
End If


Selection.AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd
Range("A1").Select
Range("B2", Range("B2").End(xlDown)).Select
Selection.Copy

Windows("貼りつけるファイル名").Activate
Cells(Rows.Count, 4).End(xlUp).Offset(1).Select
ActiveSheet.Paste


End Sub

です。

フィルターで0以外の値を抽出しコピーまではできていますが、貼りつけるところでエラーがでます。


Microsoft Visual Basic

400


というエラーです。

何が悪いのか分かりません・・・。
分かる方いましたらご教授ください。よろしくお願いします。

A 回答 (2件)

こんばんは!


お役に立てるかどうか判りませんが・・・

貼り付けるBookのSheetを指定してはどうでしょうか?

>Windows("貼りつけるファイル名").Worksheets("sheet1").Activate

といったような感じで。

的外れならごめんなさいね。m(_ _)m

この回答への補足

返答ありがとうございます。

やってみましたが、駄目でした・・・。

補足日時:2011/06/23 21:58
    • good
    • 0

Windows("貼りつけるファイル名.xls").Activate


のように拡張子を入れたらどうなりますか?
(2007以降なら拡張子も変わっていますが。)

この回答への補足

すいません、元のコードには拡張子は入っています。

分かりやすく変えたつもりだったのですが…。

補足日時:2011/06/23 17:57
    • good
    • 0

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