2012-07-25 70 views
1

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

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 

它完美,但如果我更新主并再次运行宏它的隔离板的原始信息下粘贴它。我如何才能覆盖已经存在的信息而不是粘贴在下面?

这是希望

回答

2

它粘贴在原来的信息,因为你告诉它。

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

无论你的代码改成这样

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

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

+0

谢谢。这已经解决了它。我必须承认这是一个新的Ro,这是对我认为是正确的代码进行复制和粘贴,并进行了一些修改。再次感谢。 – user1551203 2012-07-25 10:44:56

+0

很高兴你能工作:) – 2012-07-25 10:46:29