1

我在工作簿上运行以下宏,以将具有特定条件的数据从“主”表复制到“隔离”表;

Dim LR As Long, LR2 As Long

Application.ScreenUpdating = False

With Sheets("Quarantined")
    LR2 = .Range("L" & Rows.Count).End(xlUp).Row
    If LR2 > 2 Then
        .Range("A3:I" & LR2).ClearContents
    End If
End With

With Sheets("Master")
    LR = .Cells(Rows.Count, 8).End(xlUp).Row
    LR2 = Sheets("Quarantined").Range("L" & Rows.Count).End(xlUp).Row
    With .Range("L2:L" & LR)
        .AutoFilter Field:=1, Criteria1:="QUARANTINED"
        .Offset(1).Resize(LR).EntireRow.Copy Sheets("Quarantined").Range("A" & LR2 + 1)
        .AutoFilter
    End With
End With

Application.ScreenUpdating = True

它运行良好,但如果我更新主文件并再次运行宏,它会将其粘贴在隔离表上的原始信息下。如何让它覆盖已经存在的信息而不是粘贴在下面?

这里希望

4

1 回答 1

2

它粘贴在原始信息下,因为您告诉它。

您正在清除您的范围,.Range("A3:I" & LR2).ClearContents但您正在从 Col L 获取下一个可用行LR2 = Sheets("Quarantined").Range("L" & Rows.Count).End(xlUp).Row

将您的代码更改为此

.Range("A3:L" & LR2).ClearContents

或基于 Col A 而不是 Col L 取最后一行

于 2012-07-25T10:09:52.203 回答