2017-08-16 66 views
0

我一直在爲此工作了幾個小時,但無法使其工作到目前爲止。循環直到出現錯誤424

我有一些過濾的數據,我想將第一個數據單元存儲爲循環中使用的變量。但是,一旦我的循環刪除了所有的數據,它應該自行結束,我收到一個424錯誤,需要的對象。

代碼

Sub jjjjj() 

Dim rng As Range 

ActiveSheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1, 9).Select 

Set rnge = Selection 

Do Until (rnge.value = 0)   
    Range("i1").Activate 
    Selection.End(xlDown).Select 
    Selection.EntireRow.Delete     
Loop 

End Sub 

錯誤線Do Until (rnge = 0)

我已經試過Do until (rnge.value = "")

除了取出value

任何幫助將不勝感激。

+0

如何rnge.Value達到零值? – jsotola

+0

我只是猜測在這裏,我試過「」,那也不管用。基本上代碼刪除所有的數據,但不會因爲單元格'ActiveSheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1,9).Select'選擇沒有數據在其中。 – Sky

回答

0

我覺得你像下面的代碼後,該代碼註釋中解釋:

Option Explicit 

Sub jjjjj() 

Dim FiltRng As Range 
Dim Rng As Range, C As Range 

' set the filtered range 
Set FiltRng = ActiveSheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible) 

' loop through areas of Filtered range 
For Each Rng In FiltRng.Areas 
    ' loop through cells in column "I" of current area 
    For Each C In Rng.Columns("I") 
     If C.Value = 0 Then Exit Sub ' if value is 0 exit sub 
     C.EntireRow.Delete 
    Next C 
Next Rng 

End Sub 
+0

謝謝Shai,但我收到一個運行時錯誤13,在'如果C.Value = 0然後退出子'如果值爲0退出子'。我對vba還是比較陌生的,因此不確定如何解決它。 – Sky