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