关于Excel单元格对象,通过我前面的文章大家学习了Range("A1")、Cells (1,1)与[a1]引用。"博学诸法,须识异曲同工,巧运匠心,方得法海之舟。"也就是说,当我们学习了很多方法时,需要认识到每个方法都有其独特之处,而且不同的方法有时可以达到相同的效果,如此才能充分发挥它的创造力。今天,我们就来学习一下单元格不同引用方式的区别吧~
在实际工作中,Range("A1")、Cels(1,1)和[a1]这三种用单元格方式各有所长。如下表1所示是它们在功能的效率上的一些差异比较。
表1 三种单元格引用方式比较
从以上的比较中可以发现,
- Cells(1,1)引用方式:
优势在于将它用于循环语句比较方便,而且效率极高;
缺点是无法引用单元格区域;
- Range 引用方式:
优势在于支持属性与方法列表,支持行循环和参数;
缺点是书写时不够方便;
- [A1]方式:
优势在于书写方便、可以引用单元格区域;
缺点是不支持循环和不能弹出属性与方法列表、效率极低。
属性与方法列表对象是否支持属性与方法列表是很重要的一个特点,在编写代码时,可能程序员对某些属性或者方法不够熟悉,需要借助属性与方法列表来快速录入代码。
在单元格的三种引用方式中,仅 Range(“A1”)引用方式支持属性与方法列表,在代码窗口中录入“[A1].”或者“Cells(1,1).”后不会有任何反应。
通过参数访问子集能否通过参数访问区域中的单个对象也是衡量引用方式是否人性化的标准之一。
Range(“A1:A10”)支持三种方式访问其子集,例如获取A1:A10 区域的第2个单元格,那么有以下三种方式:
- Range("A1:A10").Item(2)
- Range("A1:A10").Cells(2)
- Range("A1:A10”)(2)
而[A1]方式引用单元格时仅仅支持两种方式引用子集。例如:
- [A1:A10].Item(2)
- [A1:A10].Cells(2)
Cells(1,1)引用方式只能引用单个单元格,因此不存在子集。
支持循环所谓的支持循环是指参数是否能配合变量在循环语句中实现累加或者递减。支持循环会给编程带来若大的便利。Range(“A1”)引用方式支持单循环,例如代码中“Range(“A"&变量)”的行号采用变量,当变量配合循环语句实现累加或者递减时,引用的对象也会相应地变化,当变量是 2时就引用A2单元格,变量是3时就引用A3单元格。
Cells(1,1)引用方式支持双循环,横坐标和纵坐标都允许使用数值变量,在循环语句中它会占有比较大的优势。
[a1]引用方式不支持循环。
引用效率Cells(1,1)引用方式的效率最高,[a1]引用方式的效率最低,前者大约是后者的20倍,因此需要反复引用一个单元格去参与某些运算时应采用 cells(1,1)引用方式,如果只引用一次,那么 Range("A1”)、Cells(1,1)、[a1]三个引用方式任选,它们之间的差异几乎可以忽略。例如0.0001秒和0.00005秒完全感受不到有何区别,但是如果引用10万次后,它们之间的差值就比较明显了。
通过上面的学习,您是否对VBA单元格的不同引用方式有了一个更全面的认识了呢?如果觉得还不错,不烦赏个赞哦[机智],若您还没有关注,可以 关注 一下,以便下次继续学习哦~