我正在编写一个宏,其中包括计算搜索结果的中间步骤。
如果搜索没有结果,该列将保持空白,这会导致计数出现1004错误。
我的代码如下:
Sub Test()
Dim z As Integer
z=Worksheets("Pumps").Range("N:N").Cells.SpecialCells(xlCellTypeConstants).Count
Range("O1").Value = z
End Sub
有人知道如何控制这个吗?
提前谢谢。
使用错误处理与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
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()
返回的范围可能为空,因此请先进行测试:
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")
。
On Error Resume Next
和On Error GoTo 0
。 - Fadi