Sub过程与程序流程控制语句

本文详细介绍了VBA中的Sub过程,包括其定义、特点和使用方法,如参数传递、调用方式等。同时讲解了If语句、For循环和For Each循环的用法,以及在编写过程中如何优化逻辑结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sub过程与程序流程控制语句

主讲:ggsmart(叶枫)

助教:apirl2008、swabe

Sub过程:

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

  2、VBA的过程主要包括“Sub过程”和“Function过程”两种。自定义函数。

Sub过程不可以返回值,Function过程可以返回值。

  3、声明Sub过程

  4、录制的“宏”就是一个简单的Sub过程,使用录制宏功能只能生成Sub过程的代码。

  5、Sub过程的特点:

     以“Sub过程名()”开头,以“End Sub”结尾;

     Sub过程一般保存在模块里。

     不返回运行结果

  6、声明Sub过程

Sub过程的语法形式:

  [Pubilc│Private][Static]Sub过程名称[参数1,参数2…..]

    [语句块]

    [Exit Sub]

    [语句块]

  End Sub

 

1、[Pubilc│Private] [Static]只能选一个

当选择Pubilc参数表明这过程是一个公共的过程,表明该工作薄中所有模块中其他的过程都可以返回这个过程。

当选择Private这个参数,就表明这个过程被声明为私有过程,只有在同一个模块中其他过程才可以访问。

当选择Static参数,就表明过程结束的时候,将保存过程中的变量。

  Sub过程名-——→必须有

  [参数1,参数2…..]一系列变量,这此变量接受传递过程参数值,用逗号分割参数。如果过程没有任何参数,就用一组空的括号,我们录制的宏都是没有参数的Sub过程。

  [语句块]

[Exit Sub]

[语句块]

 

 

 

作用是在过程认识结束之前强制、立即从过程中退出。

从过程执行另一个过程

输入过程名称以及参数,参数用逗号隔开。

过程名[参数1,参数2……]

在过程名称以及参数前使用Call关键字,参数用括号括起来,并用逗号隔开。

Call过程名[参数1,参数2……]

Sub test()

  ‘my sub

  siyou

End Sub

 

Sub test()

   ‘mysub

   ‘siyou      ‘第一种方法

    Call mysub

    Call siyou‘第二种方法

End Sub

 

利用Applicationc对象法的Run方法。

Applicationc.Run表示过程名的字符串(或字符串变量)

[参数1,参数2……]

    ‘mysub

   ‘siyou      ‘第一种方法

   Call mysub

    Call siyou

      Applicationc.Run”mysub”

       Dim a As String

a=siyou

    Application Run a

 

4.2判断与循环语句

4.2.1If语句

If逻辑表达式Then

        语句块1

        [Else

              语句块2]

End If

If——Then语句执行流程 

 

 


出题的文件图片

第一种方式

两个if语句

 

第二种方式图片

Sub dt()

If [h6].value=[d6].value+[f6].value then

        Msgbox “答对了,你真棒!”

Else

        Msgboc“答错了,继续努力!”

End if

   Call 出题‘调用过程,重新生成题目

End sub

用第二种方式比第一种方式要好的多。

2:如果回答正确,则回答对,如果回答错误,则回答错误,判断h6是否有答案,否则提示没有输入答案,然后再进行判断是否答对或答错。

Sub test()

   If[h6].value=”” then

        Msgbox “还没有输入答案!

   Elseif[h6].value=[d6].value+[f6].value then   ‘***检查是否答对

        Msgbox“答对了,你真棒!”

。。。。窗体 答题指定test

If语句是可以嵌套的,可以在if语句再编写if语句,通常情况下我们将if语句用在二源判定上,当用在三种或多种策略当中做出选择,不使用if语句,使用select case语句。

If——Then——Else语句执行流程

 

 


执行流语句,表达式为真执行语句块1,否则执行语句块2.

If逻辑表达式1Then

语句块1

[ElseIf逻辑表达式2 Then

语句块2

ElseIf逻辑表达式3 Then

语句块3

…….

Else

 语句块n]

End If

如果有3个语句以上,可用Select Case代替If——Then——Else

 

Select Case语句

Select Case测试表达式    测试表达式必须数值表达式或字符串表达式;

Case表达式列表1   表达式列表可以是用逗号分开的表达式,也可以使用TOIs关键字,如:

                       Case 1,2,3,4

                                            Case 1 to4

                                            Case is<4

                                            Case语句后面可以使用多重表达式,各表达式的数据类型可以不相同,它们之间是“逻辑或的关系,如:

                                            Case 1 to 4 ,”a”

     语句块1                        

Case表达式列表2

     语句块2

Case表达式列表3

     语句块3

…….

Case表达式列表n

     语句块n

[Case Else

     语句块n+1]

End Select

图片

Sub sl1()

     Select case[h6].value

 

数学等级A,B,C,D,F

 

For循环语句

For——Next循环语句

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

              循环体

              [Exit for]

              循环体

        Next[循环变量]

 

实例:

1100的自然数和

Debug print i   i的值在立即窗口显示

实例:

For Each——Next循环语句

        For Each元素变量In对象集合

              语句块

              [Exit for]

              语句块

        Next[元素变量]

 

Do whlie语句(开关判断)执行流程

Do Until循环语句 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值