我改写了原来的问题。
Sub s()
Dim r As Range
Set r = ActiveSheet.Range("B2:D5")
Debug.Print r.Rows.Count 'returns 4
Debug.Print r.Columns.Count 'returns 3
Debug.Print r.Cells.Count 'returns 12
Debug.Print r.Count 'also returns 12
End Sub
在此特定场景中,r.Cells.Count 和 r.Count 相同。我在许多出版物中都遇到过这种情况,如果未指定,则 Cells
是默认项目。
我只是想知道是否有人遇到过任何实际说明这一点的 Microsoft 文档 - 到目前为止我还没有。
最佳答案
你实际上并不知道你认为你所知道的。 :)
根据您分配范围的方式,Range.Count
可能会返回行数或列数,而不是单元格数; Cells.Count
将始终返回单元格数量。要进行演示,请尝试以下操作:
Sub foo()
Dim rg As Range
Set rg = ActiveSheet.Columns(1)
MsgBox "Cells count is: " & rg.Cells.Count & vbLf & "Count is: " & rg.Count
End Sub
关于vba - Range.Cells.Count 与 Range.Count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50459919/