入门精通还有哪些等级_入门变精通的VBA小课堂—对象结构

bfd73184000f6cc80293b0ae60d2524c.gif欢迎大家来到每周的VBA小课堂。之前课程中,我们处理的数据都是存放在同一个工作表中的,但在现实工作中,处理的数据常常分布在不同工作表甚至是不同工作薄上。想要处理这些复杂的数据,就先要了解什么是“面向对象”。

面向对象(ObjectOriented)就是程序的一种设计方法,一种在程序代码中写清楚系统到底是什么样子的一种方法。

我们用设计游戏的例子为大家解释面向对象中3个重要元素:类、属性、方法。

按照面向对象的方法,第一件事儿就是要写清楚在我们的系统中会用到哪几事物。如果对应在游戏中,我们设置人、妖、武器为三类事物。

定义好类之后,需要说明每一类的属性是什么。同样在游戏中,我们也需要定义属性。人的属性有姓名、战斗力;妖的属性有战斗力、原型;武器的属性有坚硬度、磨损程度。

描述完属性之后需要定义每一类事物都能做什么事情,发生什么变化。对于这些能执行的事情和发生的变化,在面向对象中称之为方法。在游戏中,凡是人都能发生跑步、攻击、死亡;对于妖来说,他们的方法就是跑步、攻击、死亡和变身;对于武器来说发生损耗为方法。这里还要说一点,在不同类之间是可以互相持有的。人可以持有武器,妖怪也可以持有武器。很多时候会把这种持有关系表达成为一种属性。也就是说,人除了名字这些属性外,还可以拥有一个武器属性,妖也是一样。

cd240a7ba0f358e995eb254e812bdf5a.png

我们已经从概念层面上,讲清楚了系统是什么样子。接下来就是按照这些概念去生成一个又一个的人、妖、武器让他们互相战斗,从而形成游戏。那我们真正看到的这些人、妖、武器才称之为对象。换句话说类规定了一个事物应该是什么样子的,是一个概念。而对象则是按照类生成的一个个真实可以操作的单元。

系统中,万事万物都是对象,这成千上万个对象可以划分成不同类。每一个类都有它独特的属性,表明他的一些特征。每一类也都会有一些独特的方法让它执行某些动作,或者发生一些变化。

在Excel中,类、属性、方法已经是系统写好的。所以,我们在编写程序的时候直接使用这些类就可以操作Excel中的每一个事物。但Excel是个复杂的系统,所以类的名字也非常多。但是没关系,在日常应用中我们只需要重点记住以下几个类就够我们使用了。

1abecc243a83fc2ea6a482e306009513.png

这些类事物里,每一类事物都已经被定义好了他们有哪些属性和方法,并且它们之间也存在从属关系。也就是说:每一个Application中有多个WorkBooks,每一个WorkBook中有多个WorkSheets,每一个WorkSheet中有多个Cells或Range。注意使用的时候千万别颠倒它们之间的关系。

下面我们来用个例子练练手:我们希望当我们按下“运行”按钮,在“Sheet3”工作表中显示100。

1dc2657475e55a33974045759a8e1daa.gif

我们可以使用刚才学习的语言来编写这个程序。首先,定义变量“w1”为一个工作表,并让“w1”等于第三张工作表。然后我们让“w1”的第5行第3列单元格显示100,程序语言如下图:

c5b695dad05121e99faeffa9a6b7838e.png

这里小编给大家画个重点,为代表对象的变量赋值时,必须使用“SET”关键字,不然系统会报错。

回到代码里,我们再做一点修改,让“w1”工作表等于Worksheet(2)和Worksheet(1),也让它们的第5行第3列单元格显示100,代码如下:

6beb8f3692311c34998917215e7b68ac.png

这样,三张工作表的C5单元格都会变成100。虽然三张工作表都叫“w1”,但是“w1”指向的对象是不一样的,所以就会在不同的对象中显示数字。

其实,上面的这个代码还能再精简化一点。Worksheet从1变成3是有一定规律的,那么我们就可以用一个“For”循环来代替它,代码如下:

98b0b04f4527cbc23f96fe954b5f4eb9.png

学会这招之后,无论有多少张工作表我们都可以轻松应对了。

但是,当不知道有多少张工作表时,就可以用一个函数公式把它们“数”出来,那这个函数公式就是“Count”,我们再来修改一下我们的程序:

1dd0456d6ab38bfb5bfca8c299e54ec7.png

这样,无论多少张工作表我们不需要数它的个数也可以全部处理了。

如果想让结果100显示在新添加的工作表中,就可以使用“Worksheets.Add”添加工作表。程序如下:

1dcdc3165c7e2072659e6c1192e683ff.png

这里我们要注意“Setw1=Worksheets.Add”是一个赋值语句,赋值语句的执行方向是从右往左的,所以这个语句会先添加新的工作表,再将这张新的工作表赋值为“w1”。

a4a5c31802709e967038a71f3f499144.gif 工作表是平时工作当中最常使用到的一个元素,所以我们下节课还会继续讲关于工作表的小知识,期待小伙伴们准时来捧场。 a4a5c31802709e967038a71f3f499144.gif

往期链接:

入门变精通的VBA小课堂—介绍篇

入门变精通的VBA小课堂—变量与常量篇

入门变精通的VBA小课堂—基本流程控制语句

入门变精通的VBA小课堂—程序调试器

入门变精通的VBA小课堂--While语句

入门变精通的VBA小课堂--多重循环

撰稿:赵高雅

编辑:张佳

0885ee4bb3d1803e9b8d050502c98a49.png▼更多精彩推荐,请关注我们▼
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值