vba - Range.Cells.Count 与 Range.Count

标签 vba excel

我改写了原来的问题。

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/

相关文章:

vba - 如何读取 txt 文件中的行,但从第二行开始,跳过第一行?

excel - 有关 Excel 中使用 VBA 的 Application.Caller 的更多信息

php - 将 PHP 日期转换为 Excel?

vba - Word VBA : ShapeRange. 删除意外行为

excel - 如何在 VBA 中获取行范围 2 :60 and column range D:H 中单元格的最大值

excel - 获取 ID 序列中的第一个和最后一个数字以及产品名称并显示在另一个工作表中

ms-access - INSERT INTO语句,新记录: how to grab autoid number created?

excel - 众多枢轴领域中的一个崩溃

vba - 设置具有变量名的数组 VBA

c# - 通过 C# 自动添加对 Excel VBA 的引用