复制具有特定值的行vba excel

时间:2016-03-23 11:15:48

标签: excel vba

大家好我有一张超过60 000行的工作表,我想将所有行复制到新工作表中,如果行的行包含某些值,例如Energizer,如下面的代码所示

 Sub Macro3()
    Dim rngA As Range
    Dim cell As Range
    Set col = Cells(Rows.Count, "A").End(xlUp)

    Set rngA = Range("A2", col)
    For Each cell In rngA
        If cell.Value = "Energizer" Then
            cell.EntireRow.Copy

        End If
    Next cell

End Sub

代码并不能完成所有工作?

2 个答案:

答案 0 :(得分:2)

以下将A列中包含“Energizer”的所有行复制到剪贴板中。

    Sub Macro3()
    Dim rngA As Range
    Dim cell As Range
    Dim col As Range
    Dim copiedRange As Range
    Dim r As Integer

    Set col = Cells(Rows.Count, "A").End(xlUp)
    r = 0
    Set rngA = Range("A2", col)

    For Each cell In rngA
        If cell.Value = "Energizer" Then
            If r = 0 Then
                Set copiedRange = cell.EntireRow
                r = 1
            Else
                Set copiedRange = Union(copiedRange, cell.EntireRow)
            End If
        End If
    Next cell


    If r = 1 Then
        copiedRange.Copy
    End If


End Sub

如代码中所述,如果要将行直接复制到新工作表,请在复制命令后添加目标。

答案 1 :(得分:0)

如果这确实是您的所有代码,则忘记将复制的行粘贴到新工作表中。