SpecialCells(xlCellTypeBlanks).EntireRow.Delete找不到细胞

时间:2014-05-15 04:04:44

标签: excel vba excel-vba

我正在尝试删除B列中有空白的任何内容。 A1:A10 = {3,1,10,1,1,10,2,2,2,10}。当我运行我的代码时,我在删除行行收到错误。这是“运行时1004错误,没有找到单元格”。显然应该找到一些细胞。到底是怎么回事?我看到有些人建议在删除行周围放置一个On Error子句,但这只会导致没有删除任何内容。

Sub test()
Dim Total_Rows As Integer
Dim rng As Range
Total_Rows = 10
Range("B1", "B" & Total_Rows) = "=if(A1=10,"""",1)"
Range("B1", "B" & Total_Rows).Copy
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues
Set rng = Range("B1", "B" & Total_Rows)
rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

2 个答案:

答案 0 :(得分:1)

您可以尝试循环播放下面的范围

For Each cell In rng     
   If cell.Value = "" Then cell.EntireRow.Delete    
Next cell

而不是找一个空白单元格

答案 1 :(得分:0)

试试这个:

rng.AutoFilter 1, "="
rng.SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.AutoFilterMode = False '~~> removes the filter

这个过滤空白或零长度字符串然后删除它 或者您可以直接过滤A1:A10,如下所示:

Range("A1:A10").AutoFilter 1, 10
Range("A1:A10").SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.AutoFilterMode = False