2013-12-23 32 views
1

我有這個宏它應該刪除沒有背景設置給他們的所有單元,但是當我執行宏時,如果兩個或多個連續的單元不有一個背景,只刪除其中之一,這裏是代碼:爲什麼我的宏不會刪除所有行(VBA)

Sub Macro1() 
     Dim a As Range 

     Set a = Hoja1.Range("A1:A12") 
     For Each cell In a 
      If cell.Interior.ColorIndex = xlNone Then 
       cell.EntireRow.Delete 
      End If 
     Next 
End Sub 

回答

4
Sub Macro1() 
    Dim a As Range, x As Long 

    Set a = Hoja1.Range("A1:A12") 

    For x = a.cells.count to 1 Step -1 
     with a.cells(x) 
      if .Interior.ColorIndex = xlNone Then .EntireRow.Delete 
     End With 
    Next x 
End Sub 
+0

這完美地工作比你!但你能解釋我爲什麼我的代碼無法正常工作嗎? – Alejandro

+0

刪除行時,您必須從下往上工作,因爲Excel如何刪除然後移到下一個。我的猜測是,你有兩個連續的行符合標準,第二個跳過了。自下而上的工作解決了這個問題。 – guitarthrower

相關問題