私は特定の値の列を検索するマクロを持っており、trueの場合、その値を含むすべての行を別のワークシートにコピーします。しかし、特定の値を持つすべての行ではなく、最後の行のみをコピーするので、動作しないようです。コピー貼り付けマクロ
基本的に、私はB列にデータを入力し、C列はVLOOKUP
で結果を返し、D列はTRUE/FALSEを返します。 D列で値がTRUEになると、行全体がコピーされて別のシートに貼り付けられます。
Private Sub CommandButton21_Click()
Dim LR As Long
Dim C As Range
Dim Test As Worksheet
Dim Pastesheet As Worksheet
'Find the last row with data in column C
LR = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row
'look at every cell in D2 onwards
For Each C In Range("D2:D" & LR)
If C.Value = True Then
'Copy code
Set Test = Worksheets("Test Sheet") ' Copy From this sheet
Set Pastesheet = Worksheets("Inventory") ' to this sheet
C.EntireRow.Copy ' copy the row from column D that meets that requirements
Pastesheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End If
Next C
End Sub
おそらく 'LR = ActiveSheet.Cells()'を変更してセルをカウントしている実際のシートにしたいと思うかもしれません。また、 'C 'の範囲を指定したいワークシートを追加します。今は 'Range(" D2:D "&LR)'だけでActiveSheetを使用しています。 – BruceWayne
ループの前にPasteSheetの最後の行を取得し、カウンタを定義してループ内にcounter = counter + 1を追加し、行全体を貼り付ける行としてカウンタを使用します。これについての良いことは、あなたが持っていた一致数をカウントすることです – Ibo
ありがとう皆さん、あなたは正確にそれらの提案を配置する場所を入力することができますか?私はマクロを書くのがとても新しいです。それは非常に高く評価されます。 – zshake