我的数据集中每列都有大量空白字段。在我将一些任意过滤器应用到其他列之后,我想计算每列中的空白单元格数。
我已经使用以下
在sub
中使用此功能
Sub whatever()
Dim myrange As Range
Set myrange = Worksheets("Sheet1").Range("a1:a100")
myrange.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeBlanks).Count
End Sub
但是当我尝试把它放在这样的UDF中时
Function CountBlankVisible(myrange As Range)
CountBlankVisible = myrange.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeBlanks).Count
End Function
无论细胞类型如何,它似乎都在计算范围内的每个细胞。任何想法为什么这将在子工作但不作为一个功能?是否可以通过其他方式获得此计数?
答案 0 :(得分:1)
Excel UDF有一些限制(从工作表调用时)。您可以阅读here。
以下是工作示例:
Function CountBlankVisible(myrange As Range)
Dim c As Range
For Each c In myrange
If c.RowHeight > 0 And IsEmpty(c.Value) Then _
CountBlankVisible = CountBlankVisible + 1
Next
End Function
答案 1 :(得分:1)
作为simoco代码的替代品:
Function CountBlankVisible(myrange As Range)
Dim c As Range
For Each c In myrange
If Not c.EntireRow.Hidden And c.Value ="" Then
CountBlankVisible = CountBlankVisible + 1
End If
Next
End Function