计算空白和非空白单元格

时间:2016-08-15 09:57:37

标签: vba excel-vba excel

我想计算给定数据范围内的所有空白和非空白单元格,直到具有数据的单元格为止。但我也只限于提及,O4:O18

sample2 sample3

根据上面的示例,我只需要将Row4中的空白单元格计算到具有asd数据的单元格。有帮助吗?谢谢!

计数的使用是计算非空白单元格内的空白单元格。假设数据的最后一行是15,所以15将是带数据的最后一行,从第4行到第15行,将计算范围中的空白单元格。

3 个答案:

答案 0 :(得分:1)

我不是100%确定你的目标是什么。我知道你有一个从“O4”到“O18”的最大范围(它可以更小)你想要从“O4”到该范围内的最后一个非空白单元格,计算空白和非空白的数量细胞。如果它确实是你想要做的,请尝试下面的代码(解释在其中):

Sub CountingBlankAndNonBlank()

    Dim MyRange As Range
    Dim LastRow As Long, TotalRange As Long
    Dim CountBlank As Long, CountNonBlank As Long

    'Find the last row with data in the Range("O4:O18")
    LastRow = 19 - Range(Cells(18, 15), Cells(Rows.Count, 15).End(xlUp)).Count

    'Set a range from "O4" to last cell with data
    Set MyRange = Range(Cells(4, 15), Cells(LastRow, 15))

    'How many cells in my Range
    TotalRange = LastRow - 3

    'How many blank cells in my Range
    CountBlank = MyRange.SpecialCells(xlCellTypeBlanks).Count

    'How many non-blank cells in may range (Total - Blank)
    CountNonBlank = TotalRange - CountBlank

    MsgBox "There are:" & vbNewLine _
        & "  - " & CountBlank & " blank cells" & vbNewLine _
        & "  - " & CountNonBlank & " non-blank cells" & vbNewLine _
        & "  - " & LastRow & " would be the lastrow"

End Sub

答案 1 :(得分:1)

您可以使用(send myfr show #f) 轻松获得所需结果,请尝试以下操作:

worksheetfunction

答案 2 :(得分:0)

计算空白单元格(在第二个示例中返回3,如果所有单元格都为空白,则返回#N / A):

=COUNTBLANK($O$4:INDEX($O$4:$O$18,LOOKUP(2,1/($O$4:$O$18<>""),ROW($O$4:$O$18))-3))

计算非空白单元格(在第二个示例中返回6,如果所有单元格都空白,则返回1):

=COUNTA($O$4:INDEX($O$4:$O$18,LOOKUP(2,1/($O$4:$O$18<>""),ROW($O$4:$O$18))-3))

使用此处的查找公式:What is this programmer doing with his Lookup function?