これは何度もここに尋ねられている場合はごめんなさい。私はvbaの初心者ですので、コードをどのように始めるかという簡単なアイデアがあります。私はExcel 2013を使用しています。条件/条件が満たされている場合に別のワークブックにデータをコピー
私は2つの異なるワークブック、メインとコピーを持っています。 行1〜4は空になります。 行5は、両方のワークブックに提供される情報のヘッダー/ラベリング用です。
「メイン」ワークブックは、列AからDNを使用してすべてのデータを格納します。
セルに「X」が含まれている場合は、列AをPに、ワークブック「コピー」にコピーします。その後、同じ行を決定するために次の行に進みます。 セルが空の場合は、同じ行を決定するためにセルが次の行に進みます。 新しい行が追加されたり、「X」から空に、または「X」に空に変更されるなど、新しい情報が3か月ごとに追加されるため、コードは動的でなければなりません。
これは私が今のところ持っているコードです。 それは動作しますが、チェックする列が非常に多いので、私はこのために別のコードを実行することを勧めました。そのために
Sub copy()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("main").Cells(Rows.Count, "A").End(xlUp).row
lr2 = Sheets("copy").Cells(Rows.Count, "A").End(xlUp).row
For r = lr To 2 Step -1
If range("Q" & r).Value = "X" Then
Rows(r).copy Destination:=Sheets("copy").range("A" & lr2 + 1)
lr2 = Sheets("copy").Cells(Rows.Count, "A").End(xlUp).row
End If
Next r
End Sub
上記のコードは、別のシートにコピーするためのものです。しかし、私は今のところそれを別のワークブックに移す必要があります。事前にどうもありがとうございました!! – miester516
申し訳ありませんが、私はあなたを正しく理解していませんが、なぜデータをループするのではなく、単にデータをフィルタリングするだけではないのですか?あなたのcriteronを満たしていればデータをフィルタリングし、sh.range( "A1000000").end(xlup).row <> 1ならば新しいシートに貼り付けます。 – Lowpar