我想计算给定数据范围内的所有空白和非空白单元格,直到数据单元格为止。但我也有一个限制只能参考,从O4:O18
。计数空白和非空白单元格
从上面的示例给出,我只需要从ROW4空白细胞计数与数据的细胞,其是asd
。任何帮助?谢谢!
count的使用是计算非空白单元格内的空白单元格。可以说数据的最后一行是15,所以15将是数据的最后一行,从第4行到第15行,将计数范围内的空白单元格。
我想计算给定数据范围内的所有空白和非空白单元格,直到数据单元格为止。但我也有一个限制只能参考,从O4:O18
。计数空白和非空白单元格
从上面的示例给出,我只需要从ROW4空白细胞计数与数据的细胞,其是asd
。任何帮助?谢谢!
count的使用是计算非空白单元格内的空白单元格。可以说数据的最后一行是15,所以15将是数据的最后一行,从第4行到第15行,将计数范围内的空白单元格。
可以easely达到使用worksheetfunction
期望的结果,试试这个:
Sub test()
Dim iBlank&, iNonBlank&, rng As Range
Set rng = Range("O4:O" & [O4:O18].Find("*", , , , , xlPrevious).Row)
With WorksheetFunction
iNonBlank = .CountA(rng)
iBlank = .CountBlank(rng)
End With
MsgBox "Blank: " & iBlank & vbNewLine & "NonBlank: " & iNonBlank
End Sub
我不是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
计数空白单元格(在第二实施例和#N/A返回3如果所有小区空白):
=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?
他们会不会全部是空白,如果你从开始细胞计数到第一个单元格的数据?它会始终在第4行开始吗? –
所以你想获得范围(“O4:O18”)中的空白单元格和非空白单元格的数量? –
@ DarrenBartrup-Cook是的,它总是从第4行开始,并将开始计算空白单元格,直到数据单元格为止。谢谢 – ramj