计算空白列时应避免“错误1004:找不到单元格”

我正在构build一个macros,其中包括一个计算search结果的中间步骤。

如果search没有结果,列保持空白,并导致计数给出1004错误。

我的代码如下所示:

Sub Test() Dim z As Integer z=Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants).Count Range("O1").Value = z End Sub 

有人有一个想法如何控制这个?

先谢谢你。

使用SpecialCellserror handling。

另外,我删除了不必要的使用计数。

 Dim rng1 As Range On Error Resume Next Set rng1 = Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants) On Error GoTo 0 If Not rng1 Is Nothing Then Range("O1").Value = rng1.Cells.Count 

你可以这样解决

 Sub Test() Dim z As Integer If Application.WorksheetFunction.Count(Range("N:N")) >= "1" Then z = Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants).Count Range("O1").Value = z End If End Sub 

SpecialCells()返回的范围可以是空的,所以事先进行testing:

 Sub Test() Dim results As Range Set results = Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants) If results Is Nothing Then Range("O1") = 0 Else Range("O1") = results.Count End If End Sub 

顺便说一下,也许你应该限定Range("O1")来得到你打算的Worksheets("Pumps").Range("O1")的返回值,如Worksheets("Pumps").Range("O1")