以下のようなコードをツールバーのマクロから起動するようにするとできるのですがコマンドボタンから起動するようにするとエラーになります。なぜでしょうか?
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Workbooks.Open "C:\My Documents\b.xls"
Windows("b.xls").Activate
Columns("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Workbooks("a.xls").Sheets("Sheet2").Range"A1:A3"),
CopyToRange:=Columns("E:G"), Unique:=True
~ここでエラー'1004'~
Windows("a.xls").Activate
Workbooks("C:\My Documents\b.xls").Close
Application.ScreenUpdating = True
End Sub
No.2ベストアンサー
- 回答日時:
Columns("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Workbooks("a.xls").Sheets("Sheet2").Range"A1:A3"),
CopyToRange:=Columns("E:G"), Unique:=True
を
Worksheets("b.xls").Columns("A:C").AdvancedFilter _
CriteriaRange:=Workbooks("a.xls").Worksheets("Sheet2").Range("A1:A3"), _
Action:=xlFilterCopy, _
CopyToRange:=Workbooks("a.xls").Worksheets("Sheet1").Columns("F:G"), _
Unique:=False
にするとどうですか
No.1
- 回答日時:
こんにちは。
KenKen_SP です。恐らくは、
> Windows("b.xls").Activate
> Windows("a.xls").Activate
でアクティブシートが変わってしまい、
> Columns("A:C").AdvancedFilter .....
の Columns がどのシートか見失って失敗するのでしょう。この部分を
Workbook("ブック名").Sheets("シート名").AdvancedFilter ...
のように AdvancedFilter を設定する場所を明示的に書いてみて下さい。
> CommandButton1_Click....
の点をみれば、シートモジュールに書いたのでしょうか?
なら、書き方として、ThisWorkbook とか Me キーワードも使えるかも
しれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Excel(エクセル) 【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません 2 2023/08/15 20:47
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Excel(エクセル) マクロを教えてください 1 2022/11/28 14:52
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
すでに開いているブックのマク...
-
VBA、Excelのworkbook.open に...
-
エクセルVBA Workbook変数に変...
-
【ExcelVBA】指定の書式で、マ...
-
エクセルのマクロについて教え...
-
【Excel VBA】ブックを複数開い...
-
[Excel VBA] フォルダ内の複数...
-
フォルダ内の全ブックのシート...
-
EXCEL VBA起動時の処理
-
VB2010でExcelの行をコピーして...
-
VBA セル入力された日付データ...
-
excelマクロ、任意セルの値で名...
-
EXCELマクロでxlsとxlsxを開く方法
-
エクセル アプリケーションの...
-
personal.xlsの削除方法
-
Excelの一括印刷で通し番号をつ...
-
フォルダ内の全てのBookに同じ...
-
いつも大変お世話になっており...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
フォルダ内の全ブックのシート...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全てのBookに同じ...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelマクロ、任意セルの値で名...
-
[Excel VBA] フォルダ内の複数...
-
VBA、Excelのworkbook.open に...
-
すでに開いているブックのマク...
-
EXCELマクロで上書きメッ...
-
VBA セル入力された日付データ...
-
EXCEL VBA起動時の処理
-
エクセルのマクロについて教え...
-
他のBookのユーザー定義関数を使う
-
Excel VBAを後ろで動かす方法
-
Excelの一括印刷で通し番号をつ...
おすすめ情報