2017-07-13 15 views
0

2つの異なるブック、メインとコピーがあります。 行1は、両方のワークブックに提供される情報のヘッダー/ラベリング用です。1つの条件を1つの条件に基づいて別のブックにコピーする

「メイン」ブックカラム、コピーコードがコピーブックで、「主」であるかどうかを決定するために、M.

に基準をカラムを使用するNにカラムを使用しますM.

  • セルに "X"が含まれている場合、列AをLに、Nをブック "コピー"にコピーします。その後、同じ行を決定するために次の行に進みます。
  • セルが空の場合は、次の行に移動して同じことを判断します。

追加された新しい行や "X"から空に、または空に "X"に変わる基準など、新しい情報が3か月ごとに追加されるため、コードは動的でなければなりません。

私はVBAの初心者ですが、複数のコードを試していますが、うまくいかないようです。もし誰かがこれで私を助けることができれば、大いに感謝します。

+2

このサイトは、**作業中ではないにもかかわらず、あなたが現在作成したコードを投稿すると最も効果的です。 – YowE3K

答えて

0

これまでのコードを表示することで、多くの役に立ちます。

多分これは少し助け:

Dim wks As Worksheet 
Dim wks_copy As Worksheet 
Set wks = Worksheets("main") 
Set wks_copy = Worksheets("copy") 

j = 2 
For i = 2 To wks.UsedRange.Rows.Count 
    If wks.Cells(i, 13).Value = "x" Then 
     wks.Range(Cells(i, 1), Cells(i, 14)).Copy Destination:=wks_copy.Cells(j, 1) 
     j = j + 1 
    End If 
Next i 

これは、行全体をコピーします。列Mをコピーしたくない場合は、コピー後に列を消去または非表示にすることをお勧めします。

マクロが3か月後に再度実行されると、ワークシートのコピーの既存のデータが上書きされます。しかし、たとえば、

Worksheets("copy").UsedRange.Offset(1, 0).ClearContents 

を使用するか、手動で範囲を消去するなどして、ワークシートの値を削除する必要があります。

関連する問題