首页 > 范文大全 > 知识文库 >

vba,if,static

知识文库   发布时间:05-10    阅读:

vba,if,static。 VBA基础一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。 二.命名规则1) 字母打头,由字母、数字和下划线组成,如 A987b_23Abc2) 字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度以下是大智慧教育网www.dazhihui008.cn为大家整理的《vba,if,static》,希望大家能够喜欢!更多资源请搜索知识文库频道与你分享!

VBA基础
篇一:vba,if,static

一.定义

标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。 二.命名规则

1) 字母打头,由字母、数字和下划线组成,如 A987b_23Abc

2) 字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度可达2

54个字符)

3) 不能与VB保留字重名,如public, private, dim, goto, next, with, intege

r, single等

定义:运算符是代表VB某种运算功能的符号。 1)赋值运算符 =

2)数学运算符 &、+ (字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、

/(除)、-(负号)、^(指数)

3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)

4)关系运算符 = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is

5)位运算符 Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻

辑等)、Imp(隐含)

VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type

2)在模块通用说明部份,加入 Option Explicit 语句可以强迫用户进行变量定义。

3)变量定义语句及变量作用域 Dim 变量 as 类型 '定义为局部变量,如 Dim xyz as integer Private 变量 as 类型 '定义为私有变量,如 Private xyz as byte Public 变量 as 类型 '定义为公有变量,如 Public xyz as single Global 变量 as 类型 '定义为全局变量,如 Globlal xyz as date Static 变量 as 类型 '定义为静态变量,如 Static xyz as double

一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。

4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。如下定义:Const Pi=3.1415926 as single

数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。定义规则如下:

Dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值为0。二维数组是按行列排列,如XYZ(行,列)。

除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。如下例:

Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)

1)注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。

 单引号 ’ ;如:‟定义全局变量;可以位于别的语句之尾,也可单独一行  Rem ;如:Rem定义全局变量;只能单独一行

2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号 =,如X=123:Form1.caption=”我的窗口”

对对象的赋值采用:set myobject=object 或 myobject:=object 1)VBA不区分标识符的字母大小写,一律认为是小写字母; 2)一行可以书写多条语句,各语句之间以冒号 : 分开;

3)一条语句可以多行书写,以空格加下划线 _ 来标识下行为续行; 4)标识符最好能简洁明了,不造成歧义。 1)If…Then…Else语句

If condition Then [statements][Else elsestatements] 如1:If A>B And C<D Then A=B+2 Else A=C+2 如2:If x>250 Then x=x-100 或者,可以使用块形式的语法: If condition Then [statements]

[ElseIf condition-n Then [elseifstatements] ... [Else

[elsestatements]] End If 如1:

If Number < 10 Then Digits = 1

ElseIf Number < 100 Then Digits = 2 Else

Digits = 3

End If

2)Select Case…Case…End Case语句 如1:vba,if,static。

Select Case Pid Case “A101” Price=200 Case “A102” Price=300 ……

Case Else Price=900 End Casevba,if,static。

3)Choose 函数

choose(index, choce-1,choice-2,…,choice-n),可以用来选择自变量串列中的一个值,并将其返回,index 必要参数,数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间。choice 必要参数,Variant表达式,包含可选择项目的其中之一。如:

GetChoice = Choose(Ind, "Speedy", "United", "Federal") 4)Switch函数

Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])

switch函数和Choose函数类似,但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返回。 expr 必要参数,要加以计算的 Variant 表达式。value 必要参数。如果相关的表达式为 True,则返回此部分的数值或表达式,没有一个表达式为 True,Switch 会返回一个 Null值。 1)For Next语句 以指定次数来重复执行一组语句 For counter = start To end [Step step] ' step 缺省值为1 [statements] [Exit For] [statements] Next [counter] 如1:

For Words = 10 To 1 Step -1 ' 建立 10 次循环 For Chars = 0 To 9 ' 建立 10 次循环 MyString = MyString & Chars ' 将数字添加到字符串中 Next Chars ' Increment counter MyString = MyString & " " ' 添加一个空格 Next Words

2)For Each…Next语句 主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句

For Each element In group Statements [Exit for] Statements Next [element] 如1:

For Each rang2 In range1

With range2.interior .colorindex=6 .pattern=xlSolid End with Next

这上面一例中用到了 With…End With 语句,目的是省去对象多次调用,加快速度;语法为: With object [statements] End Withvba,if,static。

3)Do…loop语句 在条件为true时,重复执行区块命令 Do {while |until} condition ' while 为当型循环,until为直到型循环,顾名思义,不多说啦 Statements Exit do Statements Loop

或者使用下面语法 Do ' 先do 再判断,即不论如何先干一次再说 Statements Exit do Statements

Loop {while |until} condition 一.其他循环语句

结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。

1) Goto line 该语句为跳转到line语句行

2) On expression gosub destinatioinlist 或者 on expression goto destinationlist 语句为根据 exprssion表达式值来跳转到所要的行号或行标记

3) Gosub line…line…Return语句, Return 返回到 Gosub line行,如下例: Sub gosubtry() Dim num

Num=inputbox(“输入一个数字,此值将会被判断循环”)

If num>0 then Gosub Routine1 :Debug.print num:Exit sub Routine1:

Num=num/5 Return End sub

4) while…wend语句,只要条件为保留下来的,如下例: while condition [statements] wend

TRUE,循环就执行,这是以前VB老语法

„while I<50 „I=I+1 „Wend

二.错误语句处理

执行阶段有时会有错误的情况发生,利用On Error语句来处理错误,启动一个错误的处理程序。语法如下:

On Error Goto Line „当错误发生时,会立刻转移到line行去

On Error Resume Next „当错误发生时,会立刻转移到发生错误的下一行去 On Erro Goto 0 „当错误发生时,会立刻停止过程中任何错误处理过程

VBA入门指南—如何看懂代码
篇二:vba,if,static

初识VBA

既然题目是初识VBA,那么我想先给大家一个直观的感受——什么是VBA?,往往在一些EXCEL的教材中,都会讲:VBA是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。就我看书学习的经验来说,我感到这样的定义式的描述带有很典型的中国式教材的风格,然而却不能让人立即理解,那么这样的定义有什么用呢?我给VBA下的定义是:VBA是一些代码的组合。可能这个定义没有上面教材的定义那么严谨和准确,但我想你一看就应该能明白,原来VBA就是写代码,或者说就是写程序。(如果掌握了VBA,居然我也能写程序了~~惊喜吧?)

那么你用了这么久的EXCEL,可能从来没在EXCEL的XLS文件中看到过代码,难道就写在单元格里?那我就带你去找找,VBA的代码藏在哪里吧,这也正式我今天要谈的第二个问题。当你打开一个EXCEL文件,你只能看到由许多单元格组成的工作表,这时,你可以通过【视图】菜单的【工具栏】项目,打开一个工具栏,名字叫“控件工具箱”,从左往右属第三个按钮,名字叫“查看代码”,点一下,就可以打开VBA代码编辑窗口。更简单的方法是,通过【ALT】+【F11】的快捷键,打开VBA代码编辑窗口,看到了吧,原来代码就是藏在这里的哦~~~

怎么写代码呢?你也太心急了点吧,你还没掌握命令、语法、关键字、对象、事件、属性等等内容,就想写代码?一口是吃不成个胖子的,还是让我来带你先认识下这里的每个角落吧,就像进了一间陌生的屋子,总归每个角落都得转到吧?最上面的几行,和EXCEL以及每一个微软平台下的应用程序都一样,总归是标题栏、菜单栏、工具栏等,接下来,看左边,有一个纵栏,写着“工程---VBAProject”,这里是工程资源管理窗口,里面通过树形列表展示了这个XLS文件(或者标准的应该叫“工作簿”)所包含的各个工作表对象以及工作簿对象本身。有什么用呢?

你双击任何一个SHEET,比如SHEET1,试试?是不是在右侧打开了一个文档编辑窗口?那么你就能明白,如果是SHEET1的代码,就应该写在这里了,那么SHEET2的呢?当然就写在双击SHEET2后打开的窗口里咯~那么SHEET3呢?你烦不烦啊~~~人家都明白了!!!再看看右侧的文档窗口吧,顶上有两个下拉列表框,一个写着“通用”,一个写着“声明”,什么东东啊?左边的那个是对象列表框,可以让你选择在这个SHEET里面包含的所有对象,右边的那个是过程列表框,可以让你选择和左侧当前选中的对象关联的系统或自定义过程。那么什么是对象?什么又是过程呢?今天没时间了,什么?领导要我马上去开会?不会加工资了吧?哈哈,明天继续!

昨天我们在VBA代码编辑器里转了一圈,是不是有别有洞天的感觉啊?可是,这里对于大家都是陌生的环境,到底该怎么用这里的每一个工具呢?别心急,且听我慢慢道来。在讲代码之前,我首先必须介绍一下OOP的概念和基本知识。去去去,怎么你也学着那些教材里挑些专用名词来忽悠我们啊?呵呵,因为这样才能体现作者,也就是本人的水平啊!(别扔鸡蛋,说你呢!下次不说了,还不行吗?)所谓OOP就是指Object Oriented Programming,即面向对象的程序设计方法,这种程序设计思想主要是相对于以前的面向过程的程序设计方法而言的。下面我就给大家讲个故事,很久很久以前,写程序还是很专业很神秘的一种技术活,这个时候的程序员写出来的东西,是必须要按照他给你安排好的步骤来执行的,比方说,你运行一个程序,必须先输入一条打开数据表的命令,然后才能对这个数据表进行操作,否则就会报错,甚至对于有些设计不完善的程序就会崩溃。这样写出来的程序一个是缺乏灵活性,难道作为用户就不能自己决定先浏览还是先打印?另一方面,对于那时候写出来的程序,如果将来要修改或扩充功能,那将牵一发而动全身,也为在设计这些功能的时候是一步一步安排好的,如果要修改后面的步骤,必然会影响到前面的代码,这样导致了程序员非常累。(所以高薪啊~~其实也不过是重复劳动,呵呵)。后来,出来了一个聪明人,写出了一个叫“Smalltalk”的语言,这个语言本身并没有什么特别的地方,但其中其中表现出来的接近现

实形态描述的对象思想却让整个软件设计理论提升了一个新的层次。说这些和我有什么关系啊?呵呵,下面的东西就和你有关了,也为现在的基于可视化架构的程序设计基本都引入了OOP的思想,所以如果你将OOP中最主要的概念搞清楚了,那么将对以后的学习奠定扎实的基础。

面向对象的程序设计思想中主要包含四个概念。对象、事件、方法和属性。别看这些概念这么复杂,我给大家举个例子就明白了。对象是什么?就像现实中看得见摸得着的东西一样,是实实在在的东西。比如,一个苹果,就可以作为一个对象,围绕对象概念,延伸了一个“类”的概念,什么是类呢?苹果就是一个类。晕,刚才还说苹果是对象呢,怎么一会又成了类了?其实作为类而言的苹果的概念,就是指区别于梨和橘子的苹果类的概念,而不是具体指某一个苹果。红苹果、绿苹果都属于苹果这个类,哪怕烂苹果也是。(别扔啊!)我们在设计程序的时候,可以定义一个自己的类,这样以后要用到这类对象的时候,就可以通过这个类来派生出来,而不用每次都去写定义。还有个好处是,以后修改对象属性的时候,就可以通过修改类的属性来达到同时修改通过这个类派生的所有对象的属性的目的。对象的基本概念还有三个,属性、方法和事件。苹果的颜色可以看作苹果这个对象的一个属性,苹果的大小也可以看作他的一个属性,你自己还能说出什么属性吗?恩,重量、好坏、产地等等。慢点,价格是不是啊?这个问题留给大家思考吧。从上面的例子可以看出,属性是描述对象在某一方面的特征的,通过不同属性的值就可以区别开不同的对象。方法呢?对于苹果来说“吃”就是方法,啥?吃苹果也是方法?恩,别馋啊,对苹果而言,吃就是方法,因为这个是可以作用于这个对象的,还能举个例子吗?比方相对于表格对象的方法就可以是打开、关闭、修改等。方法是用来作用于对象,使其产生某种变化的。事件是什么呢?事件就是被设计用来触发某些代码来自动执行的,这个就叫做事件驱动机制。还记得刚才我们谈到的面向过程的程序设计方法的缺点吗?对,代码的执行顺序是由设计者在设计时指定的。这种吃力不讨好的事情,劝大家以后还是少做做。我们有了事件驱动机制以后,这

样的情况就可以避免了。现在,可以通过将代码写在可能发生的事件中的办法,由用户决定啥时候运行这些代码,只要程序运行时,用户的操作行为触发了相应的事件,那么该事件中定义的代码,就会被自动执行了。

因为大家都刚接触VBA,可能光听我介绍还没有直观的感受,为了帮助大家理解,下面先介绍两个方法,可以让大家看到更多的东西。首先要介绍的是对象浏览器。打开这个对话框有三种方法。(中国的教材和教育模式下的考试,最喜欢列举完成一件事情的方法,我就纳闷,只要能解决问题,知道了一条路,干嘛还要打破沙锅问到底?)一个是通过【视图】菜单的【对象浏览器】项目,另一个是在工具栏上点击【对象浏览器】按钮。最方便的是按【F2】快捷键。打开了以后,大家看到了一个新的窗口,这里列举了三种信息,最上面的部分是用来搜索和查找信息的,中间的部分分了三栏来分别列举“库”、“类”和“成员”信息。最下面是提示和说明部分,用来说明当前选中对象的信息。为什么要介绍对象浏览器呢?大家通过这个工具可以搜索到和EXCEL以及VBA有关的各种各样的“类”和“对象”。顺便说一下,这里说的“成员”基本相当于对象、属性、方法和事件;类是成员的上级;很多类又组成了一个类库,在这里叫做“库”。以后大家如果有不明白的类,就可以在这里找到这个类有哪些对象、属性、方法和事件,以及他们之间是什么层级关系。其次,简单介绍下如何使用帮助。其实按照微软的体系,VBA的帮助包括了两个部分,一个是本地脱机帮助,也就是安装完OFFICE软件就自带的帮助,这里只是简单的介绍了VBA的基本信息。另一个部分则被微软放在了MSDN里面,这是微软单独提供给微软平台的开发人员的独立帮助工具,其中包含了非常详细的各种编程信息、技巧和案例。通过仔细研读MSDN里的内容,可以快速掌握之前不了解的编程知识,并且MSDN总是被微软的工程师们不断更新并保持着最新的状态。

下面,我们就继续昨天的内容,接着讲面向对象的编程。什么?昨天的已经都忘记了?那就先回头去看看再继续吧。今天主要给大家介绍VBA中最常用到的一些关键字。什么是关键字,关键字就是那些在OFFICE软件里已

经被定义好了特定含义和用法的字符串。比方说,“IF”这个字符串,表示“如果”的意思,在VBA里用来表示条件语句的起始,那么关键字和普通字符串有什么区别呢?关键字被规定为不可以用来表示变量名、过程名、函数名等用户定义的信息,只能根据系统规定的含义使用。也就是说,你如果有个变量起个名字叫“IF”,你写一条赋值语句“IF = 1”,这样系统在编译的时候就会提示一个错误,而不能通过编译和运行。想看看VBA里一共有多少个关键字吗?从明天开始,我们将开始一一给大伙讲解,欢迎继续关注。

代码起步——关键字

第一课

今天开始,我们将正式进入代码的学习阶段。我多年以来的授课经验告诉我,学代码应该从关键字开始。下面列举了一些常见的关键字给大家先了解下。

【框架类关键字】

工程(Project): 是指用于创建一个应用程序的文件的集合。

对象(Object): 可控制的某个东西,例如窗体和控件。

窗体(Form): 应用程序的用户界面。

控件(Control): 指的是各种按钮、标签、文本框等。

属性(Property):是指对象的特征,如大小、标题或颜色。

工作表(Worksheet):指EXCEL文件里的工作表,例如sheet1、sheet2等。

VBA中定义符号常量可以用关键字 A.ConstB.DimC.Publ
篇三:vba,if,static

一、整体解读

试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。

1.回归教材,注重基础

试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。

2.适当设置题目难度与区分度

选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。

3.布局合理,考查全面,着重数学方法和数学思想的考察

在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。

VBA语言基础知识
篇四:vba,if,static

1 VBA语言基础

一.定义

标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

二.命名规则

1) 字母打头,由字母、数字和下划线组成,如 A987b_23Abc

2) 字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度可达254个字符)

3) 不能与VB保留字重名,如public, private, dim, goto, next, with, integer, single等

第二节 运算符

定义:运算符是代表VB某种运算功能的符号。

1)赋值运算符 =

2)数学运算符 &、+ (字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)

3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)

4)关系运算符 = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is

5)位运算符 Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)

第三节 数据类型

VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type自定义数据类型。 数据类型 类型标识符 字节

字符串型 String $ 字符长度(0-65400)

字节型 Byte 无 1

布尔型 Boolean 无 2

整数型 Integer % 2

长整数型 Long & 4

单精度型 Single ! 4

双精度型 Double # 8

日期型 Date 无 8 公元100/1/1-9999/12/31

货币型 Currency @ 8

小数点型 Decimal 无 14

变体型 Variant 无 以上任意类型,可变

对象型 Object 无 4

第四节 变量与常量

1)VBA允许使用未定义的变量,默认是变体变量。

2)在模块通用说明部份,加入 Option Explicit 语句可以强迫用户进行变量定义。

3)变量定义语句及变量作用域

Dim 变量 as 类型 '定义为局部变量,如 Dim xyz as integer

Private 变量 as 类型 '定义为私有变量,如 Private xyz as byte

Public 变量 as 类型 '定义为公有变量,如 Public xyz as single

Global 变量 as 类型 '定义为全局变量,如 Globlal xyz as date

Static 变量 as 类型 '定义为静态变量,如 Static xyz as double

一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。

4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。如下定义:Const Pi=3.1415926 as single

第五节 数组

数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。

在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。定义规则如下:

Dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值为0。二维数组是按行列排列,如XYZ(行,列)。

除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。如下例:

Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)

第六节 注释和赋值语句

1)注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。 ü 单引号 ‟ ;如:‟定义全局变量;可以位于别的语句之尾,也可单独一行

ü Rem ;如:Rem定义全局变量;只能单独一行

2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号 =,如X=123:Form1.caption=”我的窗口”

对对象的赋值采用:set myobject=object 或 myobject:=object

第七节 书写规范

1)VBA不区分标识符的字母大小写,一律认为是小写字母;

2)一行可以书写多条语句,各语句之间以冒号 : 分开;

3)一条语句可以多行书写,以空格加下划线 _ 来标识下行为续行;

2 VBA语言基础

4)标识符最好能简洁明了,不造成歧义。

第八节 判断语句

1)If…Then…Else语句

If condition Then [statements][Else elsestatements]

如1:If A>B And C<D Then A=B+2 Else A=C+2

如2:If x>250 Then x=x-100

或者,可以使用块形式的语法:

If condition Then

[statements]

[ElseIf condition-n Then

[elseifstatements] ...

[Else

[elsestatements]]

End If

如1:

If Number < 10 Then

Digits = 1

ElseIf Number < 100 Then

Digits = 2

Else

Digits = 3

End If

2)Select Case…Case…End Case语句

如1:

Select Case Pid

Case “A101”

Price=200

Case “A102”

Price=300

……

Case Else

Price=900

End Case

3)Choose 函数

choose(index, choce-1,choice-2,…,choice-n),可以用来选择自变量串列中的一个值,并将其返回,index 必要参数,数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间。choice 必要参数,Variant表达式,包含可选择项目的其中之一。如:

GetChoice = Choose(Ind, "Speedy", "United", "Federal")

4)Switch函数

Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])

switch函数和Choose函数类似,但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返回。 expr 必要参数,要加以计算的 Variant 表达式。value 必要参数。如果相关的表达式为 True,则返回此部分的数值或表达式,没有一个表达式为 True,Switch 会返回一个 Null值。

第九节 循环语句

1)For Next语句 以指定次数来重复执行一组语句

For counter = start To end [Step step] ' step 缺省值为1

[statements]

[Exit For]

[statements]

Next [counter]

如1:

For Words = 10 To 1 Step -1 ' 建立 10 次循环

For Chars = 0 To 9 ' 建立 10 次循环

MyString = MyString & Chars ' 将数字添加到字符串中

Next Chars ' Increment counter

MyString = MyString & " " ' 添加一个空格

Next Words

2)For Each…Next语句 主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句 For Each element In group

Statements

[Exit for]

Statements

Next [element]

如1:

For Each rang2 In range1

With range2.interior

.colorindex=6

.pattern=xlSolid

End with

Next

这上面一例中用到了 With…End With 语句,目的是省去对象多次调用,加快速度;语法为: With object

[statements]

End With

3)Do…loop语句 在条件为true时,重复执行区块命令

Do {while |until} condition ' while 为当型循环,until为直到型循环,顾名思义,不多说啦 Statements

Exit do

Statements

Loop

或者使用下面语法

Do ' 先do 再判断,即不论如何先干一次再说

Statements

Exit do

Statements

Loop {while |until} condition

第十节 其他类语句和错误语句处理

一.其他循环语句

结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。

1) Goto line 该语句为跳转到line语句行

2) On expression gosub destinatioinlist 或者 on expression goto destinationlist 语句为根据 exprssion表达式值来跳转到所要的行号或行标记

3) Gosub line…line…Return语句, Return 返回到 Gosub line行,如下例:

Sub gosubtry()

Dim num

Num=inputbox(“输入一个数字,此值将会被判断循环”)

If num>0 then Gosub Routine1 :Debug.print num:Exit sub

Routine1:

Num=num/5

Return

End sub

4) while…wend语句,只要条件为TRUE,循环就执行,这是以前VB老语法保留下来的,如下例:

3 VBA语言基础

while condition „while I<50

[statements] „I=I+1

wend „Wend

二.错误语句处理

执行阶段有时会有错误的情况发生,利用On Error语句来处理错误,启动一个错误的处理程序。语法如下:

On Error Goto Line „当错误发生时,会立刻转移到line行去 On Error Resume Next „当错误发生时,会立刻转移到发生错误的下一行去

On Erro Goto 0 „当错误发生时,会立刻停止过程中任何错误处理过程

第十一节 过程和函数

过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。VBA具有四种过程:Sub 过程、Function函数、Property属性过程和Event事件过程。

一.Sub过程

Sub 过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。如下例:

Sub password (ByVal x as integer, ByRef y as integer)

If y=100 then y=x+y else y=x-y

x=x+100

End sub

Sub call_password ()

Dim x1 as integer

Dim y1 as integer

x1=12

y1=100

Call password (x1,y1) „调用过程方式:1. Call 过程名(参数1, 参数2…) ; 2. 过程名 参数1, 参数2…

debug.print x1,y1 „结果是12、112,y1按地址传递改变了值,而x1按值传递,未改变原值

End sub

二.Function函数

函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。参数传递也两种:按值传递(ByVal)和按地址传递(ByRef)。如下例:

Function password(ByVal x as integer, byref y as integer) as boolean

If y=100 then y=x+y else y=x-y

x=x+100

if y=150 then password=true else password=false

End Function

Sub call_password ()

Dim x1 as integer

Dim y1 as integer

x1=12

y1=100

if password then „调用函数:1. 作为一个表达式放在=右端 ; 2. 作为参数使用

debug.print x1

end if

End sub

三.Property属性过程和Event事件过程

这是VB在对象功能上添加的两个过程,与对象特征密切相关,也是VBA比较重要组成,技术比较复杂,可以参考相关书籍。

第十二节内部函数

在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。

一.测试函数

IsNumeric(x) „是否为数字, 返回Boolean结果,True or False

IsDate(x) „是否是日期, 返回Boolean结果,True or False

IsEmpty(x) „是否为Empty, 返回Boolean结果,True or False

IsArray(x) „指出变量是否为一个数组。

IsError(expression) „指出表达式是否为一个错误值

IsNull(expression) „指出表达式是否不包含任何有效数据 (Null)。

IsObject(identifier) „指出标识符是否表示对象变量

以上就是大智慧教育网http://www.dazhihui008.cn/带给大家的精彩知识文库资源。想要了解更多《vba,if,static》的朋友可以持续关注大智慧教育网,我们将会为你奉上最全最新鲜的知识文库内容哦! 大智慧教育网,因你而精彩。

  • ·vba,静态变量(2017-04-07)
  • ·vba静态变量(2017-04-18)
  • ·vb,find(2017-04-26)
  • ·wifi路由器定制(2017-02-15)
  • ·笔记本无线网慢(2017-02-15)
  • ●【往下看,下一篇更精彩】●

    下一篇: tms320c67x,mcbsp

    最新知识文库

  • excel做一周环比图
  • 室外停车场管理用房面积
  • 罚没收入,返还比例
  • 福州市数学少年宫
  • 幼儿科普剧剧本
  • 在坚持民主集中制过程中遇到的种种问...
  • 工厂供应商调查表
  • 党员,如何批评同事