ある表のある項目が空白以外(つまり、在庫がある)のものを
オートフィルターで抽出して、その中の該当列のみコピーするマクロを
記録と修正をして書きました。
初めはきちんと動いていたのですが、今日になって急に
「Selection.Copy」のところでエラーが出てしまうようになったんです。
エラーコメント:
実行時エラー‘1004':
そのコマンドは複数の選択範囲に対して実行できません。
・・・・と出たときに、デバッグすると、「Selection.Copy」の
1行が黄色くなっていて、該当箇所になっています。
コード:
Selection.AutoFilter Field:=19, Criteria1:="<>" '検索
Range("A8:C1000,G8:I1000,J8:L1000").Select
Selection.Copy
作業自体は、複数の選択範囲に対して実行できる(コピーできる)し、
今まで動いていたのに??と、なにがいけないのかわからないので、
どうか教えていただきたいと思います。
VBAは勉強始めたばかりで、この部分だけが問題なのか
わかりません。補足をしますので、どうかよろしくお願いします。
Excel2000を使用しています。
No.1ベストアンサー
- 回答日時:
文法的には問題ないと思います。
ですが、
Rangeでセルを取得した状態でSelection.AutoFilterをかけると1004の実行エラー
が出ます。
現象確認の仕方
1.隣り合わない複数のセルを選択してみる。
(CTRLキーを押したままでマウスでクリックすれば出来ます)
2.データ→フィルタ→オートフィルタを選択する
3.「複数の選択範囲に対してそのコマンドは実行できません」
とエラーが出る。
つまり
Range("A8:C1000,G8:I1000,J8:L1000").Select
を実行後に
Selection.AutoFilter Field:=19, Criteria1:="<>" '検索
をかけるとエラーになるということになります。
ですから、
Selection.AutoFilter 関数の前に
Range("A1").Selectなどを記述してあげるか、
Selection.Copy の後にSELECTを無効にするような関数を
組み込めばいいのではないでしょうか。
発生原因までは解りませんが、Select文が残った状態で
再度処理をされているのではないでしょうか?
直りました~~!!ありがとうございます。
マクロ記録したものをつなぎ合わせただけのようなコードだったので、
不要なコードを消したり、移動させたりしていたのですが、
HELL_METさんの助言を聞いて、全体を見直したところ、
そのときの残骸が2行、ずっと手前のところに残ってたのを見落としていました。
原因の2行:
Selection.AutoFilter Field:=19
Range("A1").Select
というのが、何も関係ないところに残っていました。
"複数の選択範囲”というのが、
A8:C1000,G8:I1000,J8:L1000
のことを指しているのだと思いこんでいたので、
そのあたりしか見直していませんでした。
>Select文が残った状態で
>再度処理をされているのではないでしょうか?
という助言で解決しました。
本当にありがとうございました。
間抜けなミスでした・・・
がんばって勉強しますのでまたよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Excel(エクセル) エクセルVBA 作業後に選択範囲を解除する方法 5 2023/02/17 07:13
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
vba オートフィルターのエラーについて
その他(Microsoft Office)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
8
【Excel VBA】マクロをボタンに登録したがエラーで実行できない
Visual Basic(VBA)
-
9
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
VBAを利用しオートフィルタで日付抽出でエラー
Excel(エクセル)
-
12
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
13
エクセルVBA autofilterでエラー
Visual Basic(VBA)
-
14
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
15
オートフィルターをかけ、#N/A以外で絞込みするVBA記述をご教示ください
Excel(エクセル)
-
16
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
17
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
18
VBA:日付を配列に入れ別セルに転記するとデータ型が変わる
Visual Basic(VBA)
-
19
オートフィルタで未入力(空白)を無視した抽出法
PowerPoint(パワーポイント)
-
20
エクセルマクロで特定の範囲が空白という条件
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
なぜこんな初歩的なVBAのIf文で...
-
ACCESSのエラーで困っています
-
VBAがブレークモードになっ...
-
Application.ActiveInspectorで...
-
職場から目的地までの距離集計
-
VBS実行時エラー オブジェクト...
-
DataGridView からの値取得に関...
-
Excel2019 ワークシートのコピ...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
ASP.NET OleDbConnectionが定義...
-
Access マクロでのテーブル削除
-
一般ODBCエラーについて
-
日本語環境下で作成したマクロ...
-
【Excel VBA】マクロをボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
VBS実行時エラー オブジェクト...
-
EXCEL VBAマクロ中断でデバッグ...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
VBAのコードがエラーになっ...
-
実行時エラー -'-2147417848
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VB6+SQL サーバー 2000 で 実行...
おすすめ情報