Range.Cells.Count 与 Range.Count

Dav*_*veU 3 excel vba

我已经改写了我原来的问题。

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 文档 - 到目前为止我还没有。

Ror*_*ory 6

你实际上并不知道你认为你知道什么。:)

根据您分配范围的方式,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)