关于VBA属性和方法返回对象的理解
有关对象、属性、方法三个基本概念,有时会产生属性和方法转换为对象的现象。1、属性转换为对象。
Range("A1").offset(0,1).Value=100
上面这句代码的意思是单元格A1的右边单元格(即B1)的值等于100,如果我们把代码一个个词拆开看,有点难于理解,Offset明明是属性,后面怎么跟了一个Value属性呢?
帮助中这样解释Offset的用途:
返回一个 Range 对象,该对象代表某个指定区域以外的区域
即“单元格对象.offset” 做一个整体返回另一个单元格对象。如果还不理解,下面再打个比方。
张三.身高=1.8米
这里张三是对象, 身高是属性 1.8米是属性值
张三.同学.身高=1.8米
张三是对象,同学是属性,而连接在一起"张三.同学"就是另一个人。也是一个对象。
2、方法转换为对象。
Range("a:a").SpecialCells(xlCellTypeBlanks).Select
上面这句代码的意思是选取A列空白单元格。如果把代码的词拆开看,同样不容易理解。SpecialCells是方法,而后面跟的select方法。方法也有方法吗?
帮助里这样解释SpecialCells的,
返回一个 Range 对象,该对象代表与指定类型及值相匹配的所有单元格
即 "单元格对象.SpecialCells" 作为一个整体同样可以返回另一个单元格对象。这里为方便大家理解,再打一个比方。
水壶.盛水
这里 水壶是对象, 盛水是方法
水壶.加厚.盛水
这里水壶是对象, 加厚是方法,而 “水壶.加厚” 后还是一个水壶。还是一个对象。这是就加厚由方法转换成了对象。
学习 很深奥{:051:}蛋很疼。。。 向校长学习~~~~~~~~~~~~~~
理解了,在这里Range("a:a").SpecialCells作为一个整体,是对象了,而不是Range("a:a")是对象,SpecialCells是方法,单纯套用格式很难理解的。这样就懂了。谢谢兰版,辛苦了。 感觉有点像语文的加形容词或定语的感觉~~
学习 学习 谢谢校长 学习,是用多了才会理解。 兰版辛苦了,学习一下!{:3512:} 总结得很好!
自己看帮助理解有点困难,感谢兰版!