Excel - 条件範囲が満たされている場合はコピー
問題
別のシートで入力範囲が満たされている場合、そのシートから別のシートにデータをコピーしたい
- 私のデータはすべて "insert"行と呼ばれるシートにあり、Gシート "insert"は人々の名前を持っています
- シート名 "Dom"の範囲B4:b17にはそのチームの名前のリストがあります。
- Domのシートにリストされている名前が「挿入」シートに表示されている場合は、その行をDomのシートの75行目以降にコピーします。
溶液
「行、Gシート」に「人の名前が入ります」
サンプルシートを作成しなければならなかったgの列であると仮定すると、Gは行のみの列にはなれません
挿入シートは、列AからHまでのようになります。
col.G col H
名前データa 1 s 2 d 3 f 4 g 5 h 6
ドムシートはこんな感じになります
col B row4 adgkwryuzcbmnp
私はマクロ実行マクロを書いて、これがあなたが望むものであるかどうかを確かめます。 あなたが挿入物とドムシートの小さい抜粋を与えたならば、それはもっと役に立ちましたでしょう。 あなたが望むなら、あなたのデータに合うようにマクロを修正することができます。
うまくいかない場合は、元のファイルを安全な場所に保存してください。
Sub test()範囲としてのcfind、範囲としてのc、範囲としてのx、範囲としてのdest、長さとしてのj j各ワークシートについて( "dom")各cに対して.Range( "B4:B17")x = cワークシートの値( "insert")。UsedRange Set cfind = .Cells.Find(what:= x、lookat:= xlWhole)cfindが何もない場合cfind.EntireRow.Copy .Range( "A75")で終了します。 Offset(j、0).PasteSpecial j = j + 1次cワークシート( "dom")で範囲(.Range( "A75")、.Cells(Rows.Count、 "A") EntireRow.Delete End Subで終了します。
このヒントをくれてありがとうVenkat。