我已经改写了我原来的问题。
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
Run Code Online (Sandbox Code Playgroud)
在这个特定场景中,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11864 次 |
| 最近记录: |