2012-07-25 61 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