• 締切済み

マクロでマスタ表からフィルタ表と同じデータ抽出

Prome_Linの回答

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.4

回答No.3です。 範囲指定した方が、精神衛生上、良い、という方のために。 Option Explicit Sub Test() Dim s1, s2, s3 As Worksheet Dim f As Object Dim i, r As Long Set s1 = Worksheets(1) Set s2 = Worksheets(2) Set s3 = Worksheets(3) r = s1.Range("A1").End(xlDown).Row For i = 2 To s2.Range("A1").End(xlDown).Row Set f = s1.Range("A1:A" & r).Find(s2.Cells(i, 1).Value) s1.Range("A" & f.Row & ":E" & f.Row).Copy s3.Range("A" & i) Next i End Sub 特別、説明は必要ないと思います。 前提条件等は、すべて「回答No.2」と同じです。

関連するQ&A

  • エクセルでのオートフィルタに関して(マクロ)

    1行目にタイトルがある表がありましてその表に オートフィルタを掛けて条件を複数指定して検索・・・ここまで手作業。 その後マクロでヒットした行をコピーして別のシートにコピーしたり、ということを行っています。 もともとの表のデータ数は日々増減していて ほしい行の行数も毎回変わってきます。 検索した行をコピーするために選択すると Rows("2809:2809").Select こんな具合に 行番号で指定されるのでデータ数が増減すると うまくいきません。 検索条件を指定して検索した行を うまくマクロで指定することは出来るのでしょうか? 良い方法がありましたら御教授願います。 もう一点ですが 自動記録でオートフィルタの画面を開いたままでは「記録終了」できないですよね? マクロでフィルタ画面を開いて 検索条件を指定するところから手作業でするのは可能でしょうか? あわせてよろしくお願いします。

  • フィルタオプションをマクロで

    マクロ初心者です。 フィルタオプションをマクロに登録しました。 検索範囲はマクロを登録したときの表の範囲(A5:Q50)になっていますが データは毎日増えるため(A5:Q10000)に変更して抽出自体はうまくいきましたが、 リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。 抽出時の最終データでフィルタオプションを実行するマクロをするにはどうしたらよいでしょうか? 質問がわかりにくくてすみません。 フィルタオプションの部分のマクロは下記です。 よろしくお願いいたします。 Range("A5:Q10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:B3"), Unique:=False

  • エクセル マクロ 抽出

    教えてください。 ○と記入されたセルを参照して、一つ上のセル・A列にある同じ行のセル・ 9行目にある同じ列のセルを抽出しようとしています。 下記の通り入力すると 行数=値.Rowでエラーが出たしまいました。 試行錯誤頑張りましたが解決できそうにありませんのでお力を貸して頂けないでしょうか。 Sub 抽出() Dim i, 行数, 列数 As Long Dim 値 As Range i = 0 行数 = 値.Row 列数 = 値.Column For Each 値 In Sheets("sheet1").Range("C12:R171") If 値.Value = "○" Then i = i + 1 With Sheets("sheet2") .Cells(i, 3).Value = Sheets("sheet1").Cells(行数, 1).Value .Cells(i, 4).Value = Sheets("sheet1").Cells(9, 列数).Value .Cells(i, 5).Value = 値.Offset(-1, 0).Value End With End If Next End Sub

  • オートフィルタ後の、マクロでの値の参照に関して

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 A列、B列、C列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、D列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行  A▼  B▼  C▼  D 16行 **  **   **  2.5   20行 **  **   **  2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはD16、D20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のD列のデーター数は、常に2つです。 よろしくお願いします。

  • マクロについて質問です。

    B4からD8までの表がありB2のセルに3行と入力すると表の行数が3行にかわり4行と入力すると表の行数が4行に変わるようなマクロを作りたいと思っています。 行の非表示で考えていましたが、なかなかうまくつくれません。 B2セルに入力するごとに行数が変わるようなマクロを詳しく教えていただけないでしょうか。

  • VBA フィルターで抽出したデータを別のファイルの

    VBA フィルターで抽出したデータを別のファイルのシートのセルにヘッダー行とフッター行のあるシートに挿入したい お世話になります。 excel のフィルターで抽出したデータを別のファイルのシートに抽出したデータと同一フォーマットの入っている原紙がありその原紙をコピーしたシートのヘッダー行(A1-A8)の後、9行目からフッター行の手前、52行めまでに貼り付けするを、フィルターで抽出した分繰り返したいのです。原紙 のシートはコピペでしたに20枚ほど作ってあります。 マクロの記述でコピペを繰り返せば作れそうな気はしますが、汎用性が無いので、また私の頭も固いので。 宜しくお願いします。

  • Excelのオートフィルタでデータ抽出するマクロについて

    オートフィルタで指定した期間のデータ抽出のマクロを作成しているのですが上手くいきません。 例えばA列に 10月29日 11月1日 11月3日 11月5日 と日付を入力しており、B列、C列にデータを入力していたとして D列1行目に10月31日、D列2行目に11月4日と入力し D列1行目からD列2行目までと指定したデータを抽出するマクロを教えていただけませんか。 マクロ初心者で、困っております。どうかよろしく御願いします。

  • マクロでオートフィルタを使い、抽出した表の特定の列に一定のデータを入れたい

    マクロを使い、オートフィルタをし、A列の人名でデータを抽出しました。 この抽出した表のB列全てに、「本社」という文字列を入れる為には、どうすれば良いでしょうか? 皆様の知恵をお貸し下さい。 よろしくお願い致します。

  • マクロ オートフィルタで困っています。

    マクロ オートフィルタで困っています。 1列目と2列目からそれぞれ条件をフィルタで抽出し、抽出された行を削除するマクロを組んだのですが(下記)、Bの条件が表にない場合に2行目から下が全て削除されてしまいます。 元の表は毎週変わるため、抽出する条件があるかないかはその時次第です。 オートフィルタにこだわってはいませんが、その他の抽出方法もいまいち分からず……。 どのようにすればよいのか、教えていただけますでしょうか。 宜しくお願い致します。 <マクロ> Sub Macro() Selection.AutoFilter Field:=1, Criteria1:="A" Selection.AutoFilter Field:=2, Criteria1:="B", Operator:=xlAnd Dim gyou(1) As Long gyou(0) = 2 gyou(1) = Range("A1").CurrentRegion.Rows.Count Rows(gyou(0) & ":" & gyou(1)).Select Selection.Delete Shift:=xlUp End Sub

  • オートフィルタ抽出データをコピーするマクロについて

    マクロについて勉強中の者です。 "Sheet1"にあるデータをオートフィルタで抽出し、 "Sheet2"に抽出データのみをコピーをしたいと思っています。 Range("A10:G59").Select Selection.ClearContents With Worksheets("Sheet1").Range("A1") .AutoFilter .AutoFilter Field:=1, Criteria1:="○" .CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9") End With End Sub としてみたのですが、 これを実行すると、オートフィルタが1行目(A1)ではなく、 2行目で設定されてしまい、抽出データがずれてしまいます。    A    B    C 1 品 名  仕入先  発注数 ←タイトル行に設定したい 2 りんご  ヤマト   10  ← この行に▼が設定される 色々調べた結果のマクロなので、どこが悪いのか見当がつきません。 解りやすく教えていただける方がおられましたら、よろしくお願い致します m(__)m