分享

#Excel VBA#解读(31):Range对象——从选取单元格说起

 L罗乐 2016-10-14

平时生活中,有很多细节在我们看来似乎是习以为常的。例如,在教孩子剪纸时,我们会选取一张合适大小的纸,然后对其进行裁剪成想要的模样;在维修机器时,我们会先选取合适的扳手,利用它来拧螺丝。像选择纸张并在纸张上进行操作、选取扳手并利用它来做别的事情等等这些操作,是再自然不过的事情了。

然而,当我们使用Excel VBA来操控单元格时,是否要先选取相应的单元格呢?如果熟悉了VBA,我们立马就可以回答:未必。可以说,在Excel VBA的大多数操作中,选取单元格的动作是多余的,甚至会拖慢代码的速度。但是,选取单元格是最基本的操作,是我们无意中就完成的操作,譬如在Excel工作表界面,我们将鼠标一点,那个周边带框的单元格就是我们选取的单元格,此时,我们应用的格式、输入的数据都在那个单元格中。

这里,我们还是从这个最基本的操作介绍起,逐步扩展到Range对象的诸多有用的属性和方法。

Select方法

Range对象的Select方法表示选择某个单元格或某单元格区域。例如,下面的代码:

Range('A2').Select

使单元格A2为当前单元格。

下面的代码:

Range('C2:C5').Select

选取单元格区域C2:C5

下图显示了上述代码运行后的结果:

同样地,下面的代码:

Range('C5').Select

Cells(5,3).Select

[C5].Select

Cells(65539).Select

Cells(5,'C').Select

均选取单元格C5为当前单元格。

下面的代码:

Range('C2:C5').Select

Range('C2','C5').Select

[C2:C5].Select

Range(Range('C2'), Range('C5')).Select

Range(Cells(2, 2), Cells(5, 2)).Select

均选取单元格区域C2:C5

下面的代码:

Columns(2).Select

Columns('B').Select

均选取B列。

下面的代码:

Columns('B:C').Select

选取B列和C列。

下面的代码:

Rows(2).Select

Rows('2:2').Select

均选取第2行。

下面的代码:

Rows('2:3').Select

选取第2行和第3行。

可以看出,在VBA中,您可以采用多种方法来选取要操作的单元格或单元格区域。

您可以在VBE中逐一输入上述代码并运行后对照Excel界面观察运行后的结果,以加深您对单元格对象的理解。

Activate方法

Range对象的Activate方法用于使所选单元格区域中的某单元格为活动单元格。如果没有事先明确地选择某区域,则认为是在当前工作表中的所有单元格中选取某单元格。

例如,下面的代码:

Range('B2').Activate

使当前工作表中的单元格B2为活动单元格。

下面的代码:

Range('B2:C5').Select

Range('B5').Activate

使所选择的单元格区域B2:C5中的单元格B5为当前活动单元格。如下图所示:

下面是一些奇怪的现象,如下面的代码:

Range('B2:D3').Activate

将选取单元格区域B2:D3,并使该区域的左上角单元格B2为当前活动单元格。如下图所示:

您可以使用不同的单元格区域表示方式,来试验Activate方法。运行代码时结合Excel界面观察其行为,体验Activate方法的实际运行效果。

有兴趣的话,您对ActiveCell属性和Cells属性分别试一试Select方法和Activate方法,看看结果如何?在学习VBA时,多些想法,多些思考,多些尝试,就会对Excel对象理解得更加深入透彻,也会取得更快速的进步。

最后要说明一点的是,本节的内容对熟悉VBA的人来说,可能觉得太啰嗦了,因为熟悉VBA后这两个方法几乎不会用到。但对于初学者来说,在操作一个对象之前先选择它是很自然的一种想法,仔细体验Select方法和Activate方法,有助于打开理解Range对象之门。毕竟,很多初学者的代码或宏录制器的代码中都有大量的SelectActivate存在,并且在我们后续的介绍中也会时不时地出现这两个方法。

此外,对于熟悉的人来说,考虑这两个方法的一些细微之处,也是很有意思的事情。

--------------------------------------

通过下列方式可以更快地了解完美Excel更新:

关注《完美Excel》微信公众账号:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多