2016-11-17 124 views
1

我想清除Sheet1的使用範圍,但是從A8開始並向下。我希望將數據保留在A7中,並且可以及時更新,但是低於此範圍的任何數據都會清除。我嘗試過這種語法,但它不會一路走到工作簿的末尾(「使用範圍」)。是的,在使用範圍內的最後一個單元格是A65536清除使用的範圍從特定單元格開始

For LastRow = 2 To Worksheets("Sheet1").Range("A65536").End(xlUp).Row 
    Next LastRow 
Range("A" & LastRow).ClearContents 

如何清除所有的細胞和來自行A8數據結束的使用範圍?

回答

1

你接近試試下面的 - 這樣你就不必指定「結束範圍」。它會刪除低於8排

With Sheets("Sheet1") 
    .Rows(8 & ":" & .Rows.Count).Delete 
End With 
+0

完美,我喜歡我不需要指定一個結束單元格來搜索 –

+3

有一點需要注意:使用Delete而不是ClearContents是一個缺點 - 前7行中的任何公式都指向後面的行將被破壞(例如,如果D7包含'= SUM(D8:D5000)',它將被替換爲'= SUM(#REF!)')。對於OP來說,這似乎不是一個問題,但其他用戶可能會被抓住。 – YowE3K

0

你的代碼(除了在循環中什麼都不做)只爲一個單元格建立一個地址。只需建立一個Range8:42或任何最後一行,並明確表示:

With Worksheets("Sheet1") 
    .Range("8:" & .Range("A65536").End(xlUp).Row).ClearContents 
End With 
0

或版本無關的一切(這迎合的Excel版本你有,這是與Excel 2003中有2^16或者65536行)

Range([a8], Cells(Rows.Count, "A")).EntireRow.ClearContents 
相關問題