
EXCEL2003を使用しています。
先日質問をした結果、見事なご回答をいただき、テスト検証では正常に動作したのですが、いざ自分が扱っているデータに置き換えた所、エラーになりましたので、マクロの読解をお願いいたします。
【先日の質問】
http://oshiete1.goo.ne.jp/qa3414824.html
【読解して欲しいマクロ】
ANo.1の方が記載されているマクロです。
【エラーの内容】
次のコードが黄色くなっています。
Range(Range("c7"), lstPJ).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range(Range("h7"), lstList), Unique:=False
*この内容については、実際のデータを提示しないと、何処に何があるのか皆様には解らないと思いますが、念の為、記載しました。
お手数をおかけいたしますが、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
Wendy02様 ご指摘ありがとうございます
絞り込みの条件がH7セルから書かれているなら
For idx = 7 To 100
にしないと、1行目~6行目の空白を拾いますね。
ここも確認してください
zap35さん、お礼が大変遅くなり申し訳ありませんでした。
初心者のため、わからないながら実行しましたが、まだできませんので、もう少し勉強したいと思います。
何度もご回答をいただき、本当に感謝いたします。
また、不適切な記述がありましたことを、お詫び申し上げます。
これに懲りず、またご回答頂ければ幸いです。
今回は本当にどうもありがとうございました。
No.2
- 回答日時:
nene99 さん、zap35 さん、こんばんは。
割り込み失礼します。
最後まで、コードが来ているので、エラーは、シートから返されるものですから、実行時エラーの'1004 ですね。
アプリケーション定義まとはオブジェクト定義エラーです。
あたりではないかと思います。 For idx = 1 To 100 で空白値を探していますから。ご質問者さんは、ここの範囲だからと言って、書き直ししてもらったほうが早いですね。でも、「読解」というのは、作者のzap35さんには失礼になってしまいます。
ただ、私の提案は、フィルタオプションのマクロを作るのなら、あまり難しく考えないほうがよいと思います。これって、難しく考えれば考えるほど、難しくなってしまいます。
挿入-名前-定義、DataBase と Criteria (こちらは予約語です)をつけて登録すればよいです。
(予約語というのは、フィルタオプションをやっていれば、すでに設定されています。)
その後、記録マクロを作って、Rangeの範囲を、DataBase, Criteria に書き換えてあげれば、出来上がります。(厳密に言うと、ベストなマクロではありません。別のフィルタオプションなどを設けると、予約語が、別の場所に移ってしまうので、もし、そういう心配があるなら、その場所は、名前を DataBase1, Criteria1 などして、Rangeの中も、Range("DataBase1"), Range("Criteria1") などとしてあげると、トラブルはなくなります)
もしも、データの部分や検索条件が変われば、名前-定義で、書き直せばよいはずです。
Sub KirokuMacro()
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
Range("DataBase").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("Criteria"), _
Unique:=False
End Sub
Wendy02さん、お礼が大変遅くなり申し訳ありませんでした。
また、質問の記述にもご指摘いただき、ありがとうございました。
次回より、言葉を選らんで質問したいと思います。
ご回答いただき、どうもありがとうございました。
No.1
- 回答日時:
エラーコードは何ですか? この1行だけを掲載されても回答がしづらいですね。
また読解とはどのような意味でしょうか? 解説して欲しいという意味ですか? それならばマクロ記録で「データ」→「フィルタ」→「フィルタオプションの設定」で条件指定してみればわかりますよ。それを記述したようなものです。
エラーになる理由を想像を補って書きますが lstPJ はフィルタをかけるデータ範囲の最終セルです。C列が対象なら
Set lstPJ = Sheets(sht).Range("C65536").End(xlUp)
にしましたか? (前問ではA列で回答しました)
同様に絞り込みする値を格納している列はH列なら
Const col As String = "H"
に変更していますか?
lstPJ、lstListをSetしている箇所で
Msgbox lstPJ.Address
Msgbox lstList.Address
をそれぞれ挿入してみたら、正しい最終セルを取得できているかがわかると思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
条件に応じて特定の行を非表示...
-
エクセルで全ての数字間にカン...
-
excel ある部分だけをコピペし...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
エクセルのマクロを教えてくだ...
-
エクセルで数値を簡単に加算したい
-
エクセル VBA 小数点を含む数字...
-
「マクロ」の足し算の式を教え...
-
Excel にて非表示行を探すワー...
-
【マクロ】セル内のテキストを...
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
特定のセルだけ結果がおかしい...
-
前の(左隣の)シートを連続参...
-
エクセル 計算式も入っていない...
-
エクセルVBAでパスの¥マークに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
Excel にて非表示行を探すワー...
-
条件に応じて特定の行を非表示...
-
excel ある部分だけをコピペし...
-
エクセルで全ての数字間にカン...
-
エクセル VBA 小数点を含む数字...
-
Excel2007 セルを右方向に削除...
-
値貼り付けをしても書式も貼り...
-
Excel(VBA)データ入力に応じて...
-
「マクロ」の足し算の式を教え...
-
Excelでセル内の数式は残し値だ...
-
wordのvbaでハイパーリンク設定...
-
エクセル2003でマクロをおこな...
-
VBA コピーを有効行までループ...
-
エクセルで特定の行を消して間...
-
EXCEL マクロで「キーワード入...
-
エクセル マクロ オートシェ...
-
yyyy/mm/ddの日付に一括変換す...
-
Excelで周期的に列を削除する方法
-
並べ替えのマクロで対象行の範...
おすすめ情報