在VBA中,使用Excel 2016,我试图计算给定范围的非空单元格数,但仅使用单元格整数引用。我尝试过以下方法:
WB.Sheets(1).Range(Cells(2, X), _
Cells(2, Y)).Cells.SpecialCells(xlCellTypeConstants).count
其中X和Y是列的单元格引用。请协助。
答案 0 :(得分:2)
您可以使用excel公式CountA
执行此操作,因为您可能已经知道了。
您也可以使用以下方法在VBA中使用它:
with WB.sheets(1)
WorksheetFunction.CountA(Range(.Cells(2, X), .Cells(2, Y)))
end with
答案 1 :(得分:2)
试试这个:
Range(WB.Sheets(1).Cells(2, X), _
WB.Sheets(1).Cells(2, Y)).Cells.SpecialCells(xlCellTypeConstants).count
您应该在单元格之前而不是在范围之前添加工作簿和工作表
答案 2 :(得分:1)
尝试这样:
Dim nonBlanck as long
nonBlanck = WorksheetFunction.CountA(WB.Sheets(1). _
Range(Cells(2, X), Cells(2, Y)). _
SpecialCells(xlCellTypeConstants))
但是,如果WB.SHeets(1)
未激活,那么您可能会遇到一些问题。因此,请尝试使用此改进的解决方案:
Dim nonBlanck as long
With WB.Sheets(1)
nonBlanck = WorksheetFunction.CountA( _
.Range(.Cells(2, X), .Cells(2, Y)). _
SpecialCells(xlCellTypeConstants))
End With
答案 3 :(得分:1)