分享

Range基础:常见的处理方法

 L罗乐 2017-04-20

A哥前面说过,我们对Excel的操作,最终都要被翻译成对特定执行特定的操作方法。上一节了解了Excel的range的引用和属性之后,我们这节继续学习range的常用方法。

select

select方法是VBA中最常见的方法。不仅仅可以用于range,也可以用于其他对象,如工作表,工作簿等等。顾名思义,select方法就是要选中对象,这些对象可以是单个对象,也可以是一组多个对象的集合。
对range执行select方法,就相当于在Excel里用鼠标来框选单元格。例如,如果执行下面语句,系统就会显示相应的单元格被选中。

Range('a1:b2, c4:d5')

copy/cut

高频range方法之一。用于复制和剪切range。具体示例如下:

ActiveSheet.UsedRange.Copy Destination:=[a10] '或者 ActiveSheet.UsedRange.Copy _    Destination:=Range('a10') '用_来续行

或者可以简写成

ActiveSheet.UsedRange.Copy [b10]

destination参数以及后面的内容可加可不加,也可以指定某个worksheet的某个单元格
如果不直接使用destination,则需要先选择一个range,然后用activesheet.paste

ActiveSheet.UsedRange.Copy Range('a10').Select ActiveSheet.Paste

注意这里不能简写成Range(“a10”).paste

单元格剪切与复制同理

count

用于获得指定对象的数量。例如,如果想获得range对象中单元格的数量,可以直接使用

range.count

如果想要得到range中行的数量,可以使用:

range.rows.count

注意 在使用range.rows时,如果range是不连续区域,则只会返回第一个区域的rows。这个要相当注意啊!!
举个例子,同样是一个range区域,但由于首个area不同,使用rows.count方法返回的结果是不同的。

Sub try_rows_count() Union(Range('a1:b2'), Range('a3')).Select Debug.Print Selection.Rows.Count '返回2,因为第一个区域有两行 Union(Range('a3'), Range('a1:b2')).Select Debug.Print Selection.Rows.Count '返回1,因为第一个区域只有一行 End Sub

Range交并运算

Union方法

或者可以使用Union方法,用于选中结合多个range

例如,下面这个例子用于选中两个区域赋值为1

Union(Range('a1:b3'), Range('d6')).Select Selection.Value = 1

Intersect方法
使用Intersect 方法可以获得两个range的交集

intersect(Range('a1:b3'),range('1:1')).select

Intersect常常与currentregionusedrange联用来获得最左边一列range

with方法

with方法其实适用于对指定对象进行操作,并不局限于range对象。使用with可以让代码更简洁,如果不使用with问题也不大,只是写起来比较麻烦。

With Selection    .Interior.Color = vbYellow    .Value = 10 End With

以上总结了range常见的方法,在实际处理问题的过程中,我们还会遇到更多的range方法。A哥在这里建议大家多查阅官方文档,来使用最合适的方法来解决问题。

总结一下

  • range的常用方法


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多