我正在构建一个宏,其中包含一个计算搜索结果的中间步骤。
如果搜索未提供结果,则列保持空白并导致计数产生1004错误。
我的代码如下所示:
Sub Test()
Dim z As Integer
z=Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants).Count
Range("O1").Value = z
End Sub
有人知道如何控制这个吗?
提前谢谢。
答案 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")
。