• ベストアンサー

EXCEL VBAでオートフィルタ後の最終行を取得したい

いつもお世話になります。 WIN98-EXCEL2000での作業です。 VBAでオートフィルタをかけるところまでは出来たのですが、A列:Q列までの表のうち、A2~K列の最終行までをコピーしたい場合のコマンドを教えてください。 また、オートフィルタで検索されなかった場合はコピーはしない場合、どうしたらよいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.1

ご参考にどうぞ。 このマクロでは、データ範囲のすぐ下の行も一緒にコピーされてしまいますが、空白のはずなので問題ないと思います。検索されなかった場合は、上記の空白セルの行がコピーされてしまうわけですが、これも空白なので使用上の問題はないかと思います。 Sub test2() Sheets("Normal").Select Range("A2").AutoFilter Field:=1, Criteria1:=Sheets("読込").Range("B2"), _ Operator:=xlAnd, Criteria2:=Sheets("読込").Range("C2") Sheets("Normal").AutoFilter.Range.Offset(1, 0).Copy Sheets("読込").Select Range("C3").Select ActiveSheet.Paste Sheets("Normal").Select Application.CutCopyMode = False ActiveSheet.ShowAllData Selection.AutoFilter End Sub

nanami0310
質問者

お礼

ありがとうございます。 他の質問の方も見てくださったんですね。とても嬉しいです。 思い通りに動いてくれました。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オートフィルタをしても本当の最終行を取得したい

    エクセル2007のVBAについて教えてください。 A1→目次 A2→あ A3→い A4→う A5→え A6→お オートフィルタで「え」を抽出します。 この状態で Sub test() MsgBox Range("a65536").End(xlUp).Row End Sub を実行すると、5が返ってきますが 実際の最終行は6です。 オートフィルタをしつつ、最終行を取得するには どうすればいいのでしょうか? ご回答よろしくお願いします。

  • オートフィルタ 最終行を指定する必要は?

    エクセルでVBAでオートフィルタをする場合、 ******************************************* Sub test1() 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(1, 最終列)).AutoFilter End Sub Sub test2() 最終行 = Range("a65536").End(xlUp).Row 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(最終行, 最終列)).AutoFilter End Sub ******************************************* どちらでもできるのですが、 test2のように最終行を取得・指定する必要はあるのでしょうか?

  • オートフィルタで抽出したデータの行を削除(VBAで記述)

    Excel2000を利用しています。 VBAで、オートフィルタを利用した作業を記述したいと思っています。 データは一行目にタイトルが入っています。 オートフィルタで抽出したデータを その行まるまる削除したいと思っています。 その時、タイトル行(1行目)を除いて オートフィルタで抽出された行のみ選択して 削除する、という場合、どのように記述すればよいのでしょうか。 自分では全然分からないので 教えてください、よろしくお願い致します。

  • EXCELのオートフィルタのコピーについて

    EXCEL2000を使用しています。 オートフィルターにて抽出し一部をコピーし同じシートの別の列に貼り付けすると 隠れている行にもコピーされ表示されたところだけにコピーされません。 よい方法はありますか?

  • エクセル2007で行にオートフィルタをかけたい

    エクセル2007で行データにオートフィルタをかけたいのですが できません. 範囲をどのように選択してもかならず列データにオートフィルタが かかってしまうのですが どうにかして行データにオートフィルタをかけたいです. どなたかご教授願います

  • VBA 指定の列の最終行を取得

     Excel VBAについて質問します。すいませんが宜しくお願いします。 画像の様に、A列の最終行とF列の最終行が異なった時に、 A列とF列の位置を、メッセージボックスで表示したいのですが、 例えば、画像で説明しますと、"最終列はA11とF9です" こんな感じで表示されると良いですが、 お手数ですが教えて頂けますか?

  • エクセル2002 オートフィルタのデータ

    データが入力されている表に、オートフィルタを設定しました。 表の枠外(例えば、A1列の一番下にあるとします)で接してる文字列があると、そのA列の頭に設定された、オートフィルタには、その文字列が表示されてしまうのですが、その文字列だけを表示されないような設定ってありますか?行をあけると、大丈夫なのですが、空けずにできる方法をお願いします。

  • VBAでオートフィルターの再検索

    現在VBAでオートフィルターで絞ってある条件を一度解除してもう一度同じ条件で検索をしたいと思っていますが、出来ず困っています。 内容としては たとえば、A1に"数字"、A2に"2"、A3に"3"とあった場合、A1でオートフィルターをかけ、絞り込みます。(何の条件で絞り込んだかは不明) この状態から、VBAを使います。 VBAで「一度オートフィルターを解除し、再度オートフィルターで同じ条件で絞る」という作業をしたいのですが、解除はできますが、同じ条件で再度絞り込みができません。 (たぶんCriterialの値を取得するのでしょうか?それもやり方がわかりません。) 何をしたいのか目的はと聞かれると、説明するだけでもややこしくなってしまいますので、簡単にやりたい作業だけかかせていただきました。 こんな作業は出来ますでしょうか? 教えていただけたら、幸いでございます。 意味が分からなければ、また説明させていただきます。  

  • エクセルVBA オートフィルタについて

    オートフィルタは2つまでしか条件が設定できません。 3つ以上設定する方法はないでしょうか?(OR条件です) オートフィルタの引数(Criteria)は2つしかありませんから、恐らく3つ以上の設定はできないと思っています。 そこで、オートフィルタを複数回設定し、使っていない列に特定の文字(例えば○など)を入れ、最後にこの○を条件にすることにより、実質的に3つ以上条件のフィルタリングを実現させたいと考えております。 そこでお聞きしたいのは、各条件でフィルタリングした時に、任意の列に○を入れる方法です。 例えば myRng.AutoFilter Field:=4, Criteria1:="=?UA*" でフィルタリングしたエリアの特定の列に○を入れるにはどのようなVBAになるのでしょうか? オートフィルタを使わず、ループで全行の条件を聞いて、○をつけることは可能ですが、行数が非常に多いので時間がかかってしまいます。 オートフィルタを使えばすばやく該当行が選択されますので、何とかこれを利用したいと思っています。何か良い方法は無いでしょうか? よろしくお願いします。

  • EXCELでオートフィルタが使えないのですが・・・

    外注先から届いたデータをオートフィルタで日付を抽出しようとしたら、データ→フィルタをのぞくと、肝心な「オートフィルタ」がグレーになってて、機能が使えない状態になっています。 データは1行目に表題、2~4行目にかけて、タイトル行が作られています。 2行目→              支給 3行目→            貼合  注入 4行目→ ロットNo.  日付   日   期限   大板  処理数 良品 データ→ Q3118G  2/26  2/23  3/16   20   1920   1851 こんな感じなのですが、なぜかフィルタがかかりません。 2~3行目のタイトルを削除しても、やっぱりダメでした。 Win98 EXCEL2000使用です。宜しくお願いします。

専門家に質問してみよう