1、Range对象是什么
在前面的每一讲我们都提到了Range对象,它到底是个什么东西?
我用自己的理解先来讲讲它:
因为我们主要是在说Excel的VBA,为什么要特指是Excel的VBA?
因为VBA这个语言其实在很多地方都有,Office每个套件应该都有,我还知道的是CAD也用这个语言。
我们所讲的Range对象是Excel特有的(虽然Word里也有个Range对象,但只是名字相同),它所代表的就是我们平时操作Excel表格里的最小单元——单元格。它之所以会存在于Excel的VBA里,就是因为我们用Excel VBA用到它的地方会很多很多,所以微软就帮我们做好这么一个对象,让我们能很方便的去使用它,而它具体底层是如何实现的,我们是不知道的。
如果你到微软官网查看的话:https://docs.microsoft.com/zh-cn/office/vba/api/overview/,左边列表里有个Excel-对象模型,这里就是所有的Excel VBA特有的一些对象,就是微软已经做好了让使用者直接使用的东西。
然后你可以看看Range对象,你会发现它有好多方法、属性,所以上一讲数组里我提到,直接操作Range对象就很慢的,主要是Range对象其实是一个比较复杂的东西,它包含了很多内容。
当然我们现在没有必要关注它那么多的方法、属性,很多其实我们都很少使用的,最常用的我认为有这么几个:
代码语言:javascript复制Activate 激活单元格,相当于你用鼠标点击选中
Value 这个前面多次用过,单元格里保存的内容
Offset 偏移,这个方法是很好用的
相当于军训站队的时候,教官说第5排第6个差不多的意思
Range对象使用这个方法就可以偏移到其他的Range
Resize 改变单元格的范围
Copy 复制
Paste 粘贴
Formula 公式
如果还想详细了解,除了可以去看官方文档外,还可以看对象浏览器。
对象浏览器使用简单介绍:
在编辑器里按F2,出来1个新界面,在查找框里输入Range,但是这个并不能比较精准的定位到,你还得在下面一点类(在VBA里类就可以理解是对象)的框框里去找,它是按照字母排序了的。
在这里也可以看到对象的方法和属性。
基本上我们平时能怎么操作单元格,Range对象都会有对应的方法或属性。
一开始你可能完全不知道它能有什么,你可以把能想到的操作,通过初识VBA介绍的录制功能录制出来,去慢慢了解。
2、使用
使用过Excel的人都知道,如果你要在一个单元格写东西,你得选中单元格、再输入、回车,这才能完成一个单元格的赋值。
如果用VBA语句的话,就是:
代码语言:javascript复制Range("A1").Activate
Range("A1").Value = "123"
这个时候,你要这么去想了,你现在已经是会VBA代码的人了,你还需要像一般人那样去操作Excel?还需要像普通人拿过东西那样分三步:走过去、拿起来、走回来?
不需要啦,这时候的你已经有了魔法了,你要拿一个东西的时候,你直接弄个魔法,叫它跑过来就行了,你现在只要一步了,直接操作Range对象就行啦,激活这种操作在VBA里一般都不需要用,你只要能精准找到对象就可以。
代码语言:javascript复制Range("A1").Value = "123"
举再多的例子也不如自己动手去试试来的好,所以这东西还是得自己多去使用,才会真正的自己去理解。
3、小结
简单介绍Range对象,是Excel VBA里操作最多、最基本的对象。