加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Sub过程、判断与循环语句结构

(2011-11-01 11:14:20)
标签:

杂谈

Sub过程、判断与循环语句结构

  过程

大部分的VBA代码都会保护在过程中。可以在VBE中访问这些VBA模块,一个模块可以保护任意数量的过程。过程可以是任意长度,但是为了可纠错和便于理解,往往通过分成几个更小的过程来完成。

l  一个过程就是就是一组完成所需操作的VBA代码组合。

l  VBA过程主要包括“Sub过程”和“Function过程”两种。

l  Sub过程不可以返回值;Function过程可以返回值。

 

  Sub过程的声明

录制宏就是一个简单的Sub代码。使用录制宏功能只能产生Sub过程的代码。这些代码可能就会比较繁琐,影响运行速度,因此编辑快速简洁的代码就显得比较重要了。

1Sub关键字声明的语法格式:

 

[Public I Private][Static]sub过程名称([参数1,参数2..])

     [语句块]

     [Exit Sub]

     [语句块]

部分

描述

Public

可选的。表示所有模块的所有其它过程都可访问这个 Sub 过程。 如果在包含 Option Private 的模块中使用,则这个过程在该工程外是不可使用的。

Private

可选的。表示只有在包含其声明的模块中的其它过程可以访问该 Sub 过程。

Friend

可选的。只能在类模块中使用。表示该 Sub 过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。

Static

可选的。表示在调用之间保留 Sub 过程的局部变量的值。Static 属性对在 Sub 外声明的变量不会产生影响,即使过程中也使用了这些变量。

过程名

必需的。Sub 的名称;遵循标准的变量命名约定。

参数1……

可选的。代表在调用时要传递给 Sub 过程的参数的变量列表。多个变量则用逗号隔开。

语句块

可选的。Sub 过程中所执行的任何语句组。

2、从过程中执行另一个过程的方法:

       (注:以下示例中Mysub1Mysub2均为过程)

1)      输入过程的名称以及它的参数(如果有的话),参数用逗号隔开。

例:Sub Mysub1()

         Mysub2

End Sub

 

2)      在过程名称以及它的参数(如果有的话)前使用关键字Call,参数用括号括起来并用逗号隔开。

例:Sub Mysub1()

         Call Mysub2

End Sub

 

3)      使用Application对象的Run方法。当需要运行某个过程,而又把过程的名字指定给某个变量的时候,Run方法是很有用的。然后可以将这个变量作为参数传递给Run方法。

例:Sub Mysub1()

         Application.Run “Mysub2”

End Sub

 

 

  判断与循环语句

1      判断与条件语句:

1)      If……Then       语法结构:

 

If 逻辑表达式 Then

语句块

End If

理解:如果逻辑表达式成立,执行相应语句块,否则执行End If的下一句。

2)      If……Then……Else   语法结构:

 

If 逻辑表达式1 Then

语句块1

Elseif  逻辑表达式2 Then

         语句块2

……

……

End If

理解:多条件判断,如果逻辑表达式1成立执行语句块1,然后End If;如果逻辑表达式1不成立,则执行逻辑表达式2,……直至End If

3)      Select Case   语法结构



Select Case 测试表达式

Case 表达式1

         语句块1

Case 表达式2

           语句块2

…………

…………

End Select

理解:Select Case是多条件判断的一种格式,它与If……Then……Elseif类似,但它的结构清晰更易于阅读及调试。

其他说明:

a)      测试表达式必须未数值或字符串。

b)      表达式可以是用逗号分开的表达式,也可以使用ToIs关键字,如:

Case 1,2,3,4

Case 1 to 4

Case Is<4

c)      Case语句后面可以使用多重表达式,个表达式的数据类型可以不相同,他们之间是“逻辑或”的关系,如:Case 1 to 4,“a”;

2      循环语句

(注:符合“[]”内容为可选。“Debug.Print 变量”可以用来在立即窗口查看语句运行结构。)

1)      For……Next循环语句   语法结构:


For 循环变量 =初值 To 终值 [Step步长]
      
循环体

     Next [循环变量]

理解:其中初值、终值、步长都是数值表达式。循环变量也成循环控制变量,它的两个作用是,一是控制循环运行次数;二是用来为循环中的变量或属性赋值。

2)      For Each……In……Next循环   语法结构


For Each 元素变量 In 集合
      
语句块

[Exit For]

语句块

Next [元素变量]

理解:在不确定循环次数的情况下,无法应用计数循环。此时就可以使用For Each ……In……Next循环来遍历集合。

3)      Do 循环   语法结构

开头判断循环条件:根据条件决定是否执行循环体,也可能一次也不执行。


Do [While 循环条件]

         循环体

[Exit Do]

         循环体

Loop

文本框: Do 循环体 [Exit Do] 循环体 Loop [While 循环条件] 结尾判断循环条件:先执行循环体,然后判断条件,根据条件决定是否继续执行循环体,因此至少执行1次。

 

Do

         循环体

[Exit Do]

         循环体

Loop [While 循环条件]

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有