excel vba指令对象
至此,我们已经了解了对象、属性和方法的基本概念,Excel的对象模型和VBA常见对象的表示,以及如何使用对象的属性和方法,这是Excel VBA编程最基本的部分。熟悉这些知识对进一步学习VBA程序设计非常重要。
为了进一步巩固所学的知识,我们引用Excel老师(Bill Jelen)《VBA and Macros for Microsoft Excel》一书中的例子,稍加修改,再次直观地讲解相关概念和表示对象的基本语法结构。
假设我们用VBA踢球,那么踢球的指令应该类似于下面这样:
“踢球”(“踢球”中文)。
这是我们平时说话的方式,意思很明确。句子中有动词(踢)和名词(球)。记住前面系列文章中的VBA代码,它也包括动词(添加)和名词(工作表)。
虽然我们通常用来踢足球的指令听起来很自然,但VBA代码并不是这样表达的。如果你用VBA踢球,基本的语言结构应该是:
球。踢
这里,名词(球)在前面。在VBA,它是宾语,名词后面还有一个动词(Kick)。在VBA,就是这种方法。
这是VBA最基本的结构:
对象。方法(对象。方法)。
如果你用VBA写程序,你必须习惯这种结构。
让我们假设一下。在绿色的草地上,你面前有五个球,分别是足球、篮球、棒球、保龄球和网球。现在,你给足球运动员一个指示:
踢球(中文:踢足球)
如果你只告诉他踢足球。Kick),但是你不知道打哪个球,可能他会打离他最近的那个,比如保龄球,这显然会造成问题。
对于任何名词或物体,在VBA,都会有一种物体集合。看Excel,可以一行,也可以多行;可以有一个单元格,也可以有多个单元格;您可以有一个或多个工作表。对象集合和对象集合之间的唯一区别是,需要在对象名称后添加一个代表复数的“s”,例如:
工作簿变成了工作簿。
工作表变成工作表。
球变成球。
当提到一组物体时,有必要告诉VBA具体要操作的物体。可以使用不同的方法。
一种方法是使用数字来表示特定的对象:
球(2)。踢
然而,这种方法虽然可以达到目的,但也很危险。例如,代码一开始可能工作得很好,但是如果有人在某个时候调整了球的顺序,球(2)。踢可能变成另一个球。
另一种方法是使用名称来指示特定对象,这是一种更安全的方法:
球(“足球”)。踢
明明知道是踢足球。
在Excel VBA中,对于大多数动词或方法,都有参数告诉如何执行动作,这些参数相当于副词。你可能想把足球踢到左边,用力踢:
球(“足球”)踢球方向:=左,力量:=硬
大多数方法都有大量参数来告诉程序如何执行该方法。
查看VBA代码时,当您看到冒号和等号的组合时,这意味着参数用于描述动词如何执行动作。(对于属性,进一步描述了形容词的特征。)
有时,一个方法可能有10个参数,其中一些是可选的。也许Kick方法有一个Elevation参数。使用以下代码:
球(“足球”)踢球方向:=左,力量:=硬,高度:=高
这里很混乱。每个方法的参数都有一个默认顺序。如果碰巧知道参数的位置,就不能使用参数的名称。下面的代码相当于上面的代码:
球(“足球”)。向左踢,用力,高
这也可能影响我们对代码的理解。没有冒号和等号的组合,参数的意义就没有那么明显了。当然,知道参数的顺序可以理解其含义,但我们不可能记住大多数参数的所有顺序。
左、硬和高的上述例子很容易理解,但是当使用以下参数时:
艺术字。添加左侧:=10,顶部:=20,宽度:=100,高度:=200
将其缩写为以下代码:
艺术字。加10,20,100,200
这是令人困惑的!这也是一个有效的代码,但是除非你知道Add方法的默认顺序是Left、Top、Width和Height,否则这个代码的含义很难理解。
更复杂。用户可以在代码中指定参数的名称,并省略其他参数的名称。比如用户在没有指定参数名称的情况下,在参数的默认位置设置一个参数,然后突然带来一个指定名称的参数,这个参数不一定在默认位置。如果你想向左踢高,不考虑力量(使用默认力量),那么下面两种说法是等价的:
球(“足球”)。踢腿方向:=左侧,高度:=高
球(“足球”)。向左踢,高度:=高
一旦指示了参数名称,下列代码需要指示参数名称。
灵活的参数表示方便,但也带来了问题!
对象属性的参数也有类似的规则。
有些方法很简单。例如,要模拟按F9键(即重新计算工作表),可以使用以下代码:
申请。计算
有些方法可以执行一个操作并创建一个新对象。例如,以下代码添加了一个工作表:
工作表。在:之前添加=工作表(1)
您可以将Add方法创建的新对象分配给变量,在这种情况下,您必须将参数括在括号中:
设置我的工作表=工作表。添加(在:=工作表(1)之前)
类似于很多关于对象的书,名词一般代表对象,动词代表方法,形容词代表属性。如前所述,在代码中:
活动单元格
表示活动单元格。
现在,我们希望将活动单元格的颜色更改为黄色,并使用其属性“内部”。颜色索引代码如下:
ActiveCell。内饰。颜色指数=6
虽然代码中使用了两个句号,看起来有点复杂,但它的结构仍然是“名词指向其他内容”,这次是Object。财产
不同之处在于,在分配属性时,等号前没有冒号。
对象的属性总是被设置为等于某个东西,或者属性的值是为变量或其他对象的属性获得的。
例如,要将当前单元格的颜色设置为单元格A1的颜色,代码如下:
ActiveCell。内饰。颜色指数=范围(“A1”)。
内饰。颜色索引是一个属性。通过更改属性值,可以相应地更改对象的表示。您可以通过更改形容词对单元格进行一些设置。我们通常说“将单元格设为红色”,而VBA是这样说的:
ActiveCell。内饰。颜色索引=3
版权声明:excel vba指令对象是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。