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.CopyRange("a10").SelectActiveSheet.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")).SelectDebug.Print Selection.Rows.Count'返回2,因为第一个区域有两行Union(Range("a3"), Range("a1:b2")).SelectDebug.Print Selection.Rows.Count'返回1,因为第一个区域只有一行End Sub
Range交并运算
Union方法
或者可以使用Union方法,用于选中结合多个range
例如,下面这个例子用于选中两个区域赋值为1
Union(Range("a1:b3"), Range("d6")).SelectSelection.Value = 1
Intersect方法
使用Intersect 方法可以获得两个range的交集
intersect(Range("a1:b3"),range("1:1")).select
Intersect常常与currentregion或usedrange联用来获得最左边一列range
with方法
with方法其实适用于对指定对象进行操作,并不局限于range对象。使用with可以让代码更简洁,如果不使用with问题也不大,只是写起来比较麻烦。
With Selection .Interior.Color = vbYellow .Value = 10End With
以上总结了range常见的方法,在实际处理问题的过程中,我们还会遇到更多的range方法。A哥在这里建议大家多查阅官方文档,来使用最合适的方法来解决问题。
总结一下
- range的常用方法