当前位置:首页 > 办公 > Excel教程 > 正文内容

excel vba 指令对象

酷网3周前 (10-08)Excel教程33

至此,我们已经了解了对象、属性和方法的基本概念,认识了Excel的对象模型以及常用的对象在VBA中的表示,以及如何使用对象的属性和方法,这些都是Excel VBA编程最基础的部分。熟悉和了解这些知识,对进一步学习VBA编程很重要。

为了进一步巩固已经学习的知识,我们引用Excel先生(Bill Jelen)的著作《VBA and Macros for Microsoft Excel》中的例子,稍作修改,再次形象化地说明相关的概念和表示对象的基础语法结构。

假设我们使用VBA来玩足球,那么踢球的指令应该类似下面这样:

“Kick the Ball”(中文为:“踢球”)

这就是我们平时说话的方式,具有很明确的意义,句子中有动词(Kick)和名词(the Ball)。还记得前面的系列文章中的VBA代码,也有动词(Add)和名词(Worksheets)。

虽然说平时我们用于踢球的指令听起来已经很自然,但是VBA代码并不是这样来表示的。如果使用VBA来踢足球,那么基础的语言结构应该是:

Ball.Kick

这里的名词(Ball),位于最前面,在VBA中,就是对象,也有动词(Kick)紧随在名词之后,在VBA中,就是方法

这也就是VBA中最基础的结构:

对象.方法(Object.Method

如果使用VBA编写程序,就一定要习惯于这样的结构。

接着来做假设。在绿色的草地上,放在你面前的有5个球,分别是足球、篮球、棒球、保龄球和网球。现在,你给足球队员发出一条指令:

Kick the soccer ball(中文为:踢足球)

如果你仅仅告诉他踢球(或者Ball.Kick),没有明确踢哪一个球,可能他就会踢离他最近的那一个,例如保龄球,这明显会出问题。

对于任何名词或者对象,在VBA中,都会有一类对象集合。看看Excel中,可以有一行,也可以有多行;可以有一个单元格,也可以有多个单元格;可以有一个工作表,也可以有多个工作表。对象与对象集合的惟一不同之处就是需要在对象的名称后面加上一个表示复数的“s”,例如:

Workbook成为Workbooks

Worksheet成为Worksheets

Ball成为Balls

当所指的是某个对象集合时,就需要告诉VBA具体要操作的对象。可以使用不同的方法。

一种方法是使用数字来指明具体的对象:

Balls(2).Kick

然而,这种方式虽然可以达到目的,但也比较危险。例如,可能最初代码工作得很好,但某个时候某人调整了球的顺序,那么Balls(2).Kick可能就变为踢到其他的球了。

另一种方法是使用名称来指明具体的对象,这是一种比较安全的方式:

Balls(“Soccer”).Kick

很明确地知道是要踢足球。

在Excel VBA中,对于大多数动词或者方法,都会有参数告诉如何执行动作,这些参数相当于副词。你可能想把足球踢到左边并且是使劲踢:

Balls(“Soccer”).KickDirection:=Left,Force:=Hard

多数方法都有大量的参数告诉程序如何执行方法。

在查看VBA代码时,当看到冒号和等号的组合时,就说明是使用参数描述动词如何执行动作。(而对于属性来说,则是进一步描述形容词的特性)

有时,某个方法可能会有10个参数,其中有些参数是可选的,可能Kick方法有一个Elevation参数,使用下面的代码:

Balls(“Soccer”).KickDirection:=Left,Force:=Hard,Elevation:=High

这里容易让人搞糊涂。每个方法的参数都有默认的顺序,如果你碰巧知道参数的位置,那么可以不使用参数的名称,下面的代码等效于上面的代码:

Balls(“Soccer”).Kick Left,Hard,High

这也可能影响我们对代码的理解,没有冒号和等号的组合,参数的含义就不那么明显了。当然,知道参数的顺序,是可以理解其意思的,但大多数参数的顺序我们是无法全部记住的。

上面例子中的Left、Hard和Hign还是比较容易理解,但使用下面的参数时:

WordArt.Add Left:=10,Top:=20,Width:=100,Height:=200

将其简写成下面的代码:

WordArt.Add 10,20,100,200

这就让人困惑了!这也是一条有效的代码,但除非你知道Add方法默认的顺序分别是Left、Top、Width、Height,否则这条代码的意思很难明白。

再复杂一些。用户在一条代码中可以指定某个参数的名称,省略掉另外参数的名称。例如,用户在不指明参数名称的情况下在参数的默认位置设置参数,然后突然带上一个指明名称的参数,而且这个参数不一定在默认的位置上。如果想把踢高高地踢到左边,而不介意力量的大小(使用默认的力量),那么下面的两条语句是等效的:

Balls(“Soccer”).Kick Direction:=Left,Elevation:=High

Balls(“Soccer”).Kick Left, Elevation:=High

一旦开始指明参数名,后面的代码就都需要指明参数名称。

灵活的参数表示,方便的同时也带来了问题!

对于对象的属性的参数来说,也有类似的规则。

有些方法很简单,例如要模拟按下F9键(即重新计算工作表),可以使用如下代码:

Application.Calculate

有些方法可以执行一个动作并创建新的对象,例如,下面的代码添加一张工作表:

Worksheets.Add Before:=Worksheets(1)

可以将Add方法创建的新对象指定给一个变量,此时,必须使用括号将参数包住:

Set MyWorksheet= Worksheets.Add(Before:=Worksheets(1))

与很多解对象的书相似,一般代表对象的是名词,代表方法的是动词,而代表属性的则是形容词。前面我们过,代码中的:

ActiveCell

代表活动单元格。

现在,我们想将活动单元格的颜色更改为黄色,要用到其属性Interior.ColorIndex,代码如下:

ActiveCell.Interior.ColorIndex = 6

虽然代码中用到了两个句点,看似复杂一点,但是其结构仍然是“名词+点+其他内容”,这次是Object.Property(对象.属性)。

差别在于,给属性赋值时,等号前面没有冒号。

对象的属性总是被设置成等于什么,或者是获取属性的值给变量或其它对象的属性。

例如,要将当前单元格的颜色设置成单元格A1的颜色,代码如下:

ActiveCell.Interior.ColorIndex =Range(“A1”).Interior.ColorIndex

Interior.ColorIndex是属性,通过更改属性的值,可以将对象的表现进行相应的更改。更改形容词就可以对单元格进行某些设置。我们通常会说“将单元格设置为红色的”,而VBA会这样“说”:

ActiveCell.Interior.ColorIndex = 3

扫描二维码推送至手机访问。

版权声明:本文章来源于互联网,由八酷网收集发布,如需转载请注明出处。

本文链接:https://www.i8ku.com/2021/39513.html

分享给朋友:

相关文章

使用lookup函数计算销售提成

使用lookup函数计算销售提成

大家伙好,今天讨论下这样的问题,一个公司的业务提成计算方法如下: 现在需要根据各业务员的销售业绩计算他们的提成工资。如下 业务员销售业绩提成点数提成 张飞1000 赵云2000 曹操2001 荀彧5000 关羽1000...

试验检测、施工监理最常用的Excel函数公式大全,用它工作得心应手

试验检测、施工监理最常用的Excel函数公式大全,用它工作得心应手

同是从事工程技术人员,不管是做资料、做试验、做报表等等,免不了要用到Excel表格。 只要搞清楚它的一些使用小技巧,工作效率那是嗖嗖的往上蹿啊。下面这些,你就绝对不能错过! 一、数字处理 1、取绝对值 =ABS(数字)...

超全干货 I 43个Excel函数,数据分析必备!

超全干货 I 43个Excel函数,数据分析必备!

Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具。很多传统行业的数据分析师甚至只要掌握Excel和SQL即可。 对于初学者而言,有时候并不需要急于苦学R语言等专业工具(当然,学会了就...

条件求和它才是NO.1,这个函数80%人没见过,比Sumif更实用

条件求和它才是NO.1,这个函数80%人没见过,比Sumif更实用

利用Excel进行数据的统计的时候,相信大家都有用过进行过各类的求和操作。比如在进行单个条件求和的时候用的sumif函数,多个条件求和操作的sumifs函数等等。今天我们就来学习一个特殊的求和函数,它可以同时实现单条件、...

Excel怎么隐藏行和列?Excel怎么取消隐藏的行和列?

Excel怎么隐藏行和列?Excel怎么取消隐藏的行和列?

  我们在使用Excel表格有时候会需要隐藏一些行和列让表格看起来更加整齐干净,也为了给更重要的内容腾出空间。那么我们要怎么隐藏Excel中的行和列呢?隐藏之后又该怎么把隐藏的行和列取...

如何打印PPT幻灯片备注页?打印PPT幻灯片备注页方法

如何打印PPT幻灯片备注页?打印PPT幻灯片备注页方法

  PPT作为我们办公时常用的几款办公软件之一,我们使用的频率是非常高的。我们在制作PPT幻灯片的时候,会发现下方有一个备注页,如果想要单独打印这一页我们该如何操作呢?下面给大家分享一...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。