excel - 可以进行空 Excel 范围集合吗?

标签 excel vba

是否可能有一个空的 Excel 范围集合,即是否可能有一个 Excel.Range 类型的对象 obj,使得

obj.Cells.Count = 0

我强烈感觉这是不可能的。

请给出确实不可能的权威依据,或者提供一个反例。

最佳答案

我认为this将部分回答你的问题。
除此之外,我只能说,所有对象都必须被 Set 才能调用它们上的任何类型的方法。这是 OOP 的基础知识概念。您可以拥有任何类型的对象,例如
将对象调暗为范围
将对象调暗为应用程序
将 obj 变暗为 Long
但它实际上只是内存中为此变量保留的空间,正在等待分配引用。
所以答案很简单:不,不可能设置空范围对象。
自己检查一下:

Sub RangeTest()
    Dim rng As Range
    'Set rng = Range("A1")
    ActiveWorkbook.Names.Add Name:="rngName", RefersTo:=rng.Address
    MsgBox "count: " & rng.Cells.Count
End Sub

显然上面的方法失败了,但是»

Sub RangeTest()
    Dim rng As Range
    Set rng = Range("A1")
    ActiveWorkbook.Names.Add Name:="rngName", RefersTo:=rng.Address
    MsgBox "count: " & rng.Cells.Count
End Sub

<小时/> 还 Developer’s Guide to the Excel 2010 Range Object明确指出

The Range object represents one or more cells, and can be used to represent a single cell, a row, a column, a selection of cells that contain one or more contiguous blocks of cells, or a 3-D range.

关于excel - 可以进行空 Excel 范围集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484426/

相关文章:

excel - 更改 VBA 字典中的数组值

Excel 空白单元格列表

VBA:迭代工作表的所有列

excel - 接下来没有编译错误(但我都有..)

vba - 复制和粘贴无意中触发 Worksheet_Change sub

excel - 根据另一列子集中的值返回列中的值

excel - 根据标题从列中删除单元格范围

vba - 将文本和超链接组合成超链接文本

excel - 调用子程序时出错 "Expected Variable or Procedure, not Module."

vba - Excel VBA如何使用默认应用程序打开文件