避免"错误1004:没有找到细胞"计算空白列时

时间:2015-12-29 05:54:52

标签: excel excel-vba vba

我正在构建一个宏,其中包含一个计算搜索结果的中间步骤。

如果搜索未提供结果,则列保持空白并导致计数产生1004错误。

我的代码如下所示:

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

有人知道如何控制这个吗?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

SpecialCells使用错误处理。

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

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

答案 1 :(得分:0)

你可以像这样解决它

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

答案 2 :(得分:0)

SpecialCells()返回的范围可以为空,因此请事先对其进行测试:

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")