- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelマクロで他シートへの抽出:エラー)
Excelマクロで他シートへの抽出:エラー
このQ&Aのポイント
- Excelマクロを使用してSheet1の特定の列に特定の値がある行をSheet2に抽出表示する処理を作成しました。しかし、実行するとSheet1の内容も抽出された内容に変わってしまいます。
- エラーが発生している原因は、マクロが実行されているワークシートがSheet1のままであるためです。マクロを実行する際に、マクロが対象とするワークシートを指定する必要があります。
- 解決方法として、マクロ内で`With Sheets('Sheet1')`のように対象とするワークシートを明示的に指定することで、Sheet1の内容が抽出されないようにすることができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ご提示のコードは、Sheet1でオートフィルタを行い、その結果をこのコードが入っているシートのA1にコピーし、Sheet1のオートフィルタを解除しています。 Sheet1の内容を書き換える要素は入っていません。 ご提示のコードはコピペしたもので、一字一句実際のコードと同じですか?
その他の回答 (3)
- mt2008
- ベストアンサー率52% (885/1701)
回答No.3
> Sheet1には何もいれていないはずです。 確認してください。
質問者
補足
確認しました(汗 何も入っていません。
- mt2008
- ベストアンサー率52% (885/1701)
回答No.2
このコード、Sheet2にだけ入れてますか? Sheet1にも入っているんじゃないかと思います。
質問者
補足
Sheet1には何もいれていないはずです。
- FEX2053
- ベストアンサー率37% (7991/21374)
回答No.1
問題がある・・・じゃなくて、その処理は 「シート2を開くと、シート1上でマクロの処理が動く」 プログラムになってますから、シート1上の内容が書き 変わっちゃって当然ですが? リンク先を見ると、そういう話を前提に組んでいたように 見受けられるんですが・・・。
質問者
補足
そうですか コードを見るとなんとなくそうなのかなぁという気はしてたのですが…… リンク先はSheet1の内容を抽出したいという話なので、 Sheet1が変わるのは不味いはずです。質問者さんも納得 しているみたいだったので、そんなことはないと思ったのですが。 これをSheet1の内容は変えないようにするにはどうしたらよいのでしょうか。
補足
回答ありがとうございます。いろいろ試しました。 解決したような気がしますが、一応書かせてもらいます。 「異なっている点」 シート名が全角日本語に書き換えられています。 また抽出もとのSheet1にはフィルターが掛けられています。 新規ファイルに適当にデータを記入しこのVBAを試したら出来ました。 データにフィルターを掛けた状態で試すと、フィルターがなくなりますが出来ました。 コード末尾に.Range("A1:N1").AutoFilter Field:=10 を加えて、フィルターをつけ直すことができました。 そして最後に .Range("A1:N1").AutoFilter Field:=10 を最初のデータのコード最後に加えると、きちんとSheet1が表示されるようになりました。 .AutoFilterMode = Falseが効いていないのが原因でしょうか。 効かなかった理由がよくわかりませんが、元データにいろいろ加わっていた操作が 干渉したとしか考えられません。