我有一個宏在列中搜索特定值,如果爲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