Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9732|回复: 14

[分享] 【烟花原创】VBA零基础之第20篇 过程调用

[复制链接]
发表于 2013-11-14 00:06 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2013-12-4 09:05 编辑

  前面有一篇初步介绍了过程,但没有深入,接下来几篇讲讲过程的调用,过程的参数,今天讲讲过程的调用
  通过前面的学习,想必大家也会写过程了。
  
  先看下面的示例,总共有两个过程:

  Sub MultiBeep(numbeeps)
   Dim counter As Integer
   For counter = 1 To numbeeps
    Debug.Print counter '在立即窗口输出counter的值
    Beep   '蜂鸣器响一声
    Next counter
  End Sub

  Sub Message()
   MsgBox "运行结束"
  End Sub

  如果我要分别执行两个过程,该怎么操作?有童鞋可能想那很简单嘛,按两次F5就可以呀。
  请注意,MultiBeep是有参数的,有参数的过程都不能直接用 运行(F5)的方法来调用的。
  再退一步,如果两个过程都是没有参数的,这确实可行,可如果有10个或更多过程,是不是得按F5键10次或更多次?
  显然,你想让懒人按多次F5的方法是不成的。
  这里用到Call语句就能解决 , 并且可以较容易了解代码运行的流程方向并调试它们。
       添加一个Sub,然后在里面分别调用两个过程即可。

  Sub Main()
   Call MultiBeep(56)
   Call Message
  End Sub

  在上面的示例中,Sub 过程 Main 传递参数值 56 去调用 Sub 过程 MultiBeep。
  运行 MultiBeep 后,返回 Main,然后 Main 调用 Sub过程 Message。
  Message 显示一个信息框;当按"确定"键时,控件会返回 Main,接着 Main 退出执行。

 先看看Call语句的语法
  Call 过程名 过程参数列表
 
  Call:可选参数。如果使用了Call,则过程参数列表必须加上括号
  如上示例的 Call MultiBeep(56)。如果省略了Call,则过程参数列表的括号可加可不加。
  如上标例的Call MultiBeep(56),省略Call则可写成MultiBeep 56或者 MultiBeep (56)。
  平时使用的还是推荐加上(对于VBA提供的则不加)

  另外,大家可以在可以观察这两种形式下的区别:
  Call MultiBeep(56)
  MultiBeep (56)
  使用了Call的情况下,过程名与参数列表的括号之间无空格
  在省略Call的情况下,过程名与参数列表的括号之间有空格

  过程名:这个是必要参数,没有要调用的过程,那咱还CALL啥呢。

  过程参数列表: 过程在定义的时候规定了参数 (下几篇介绍)

  需注意的地方:如果使用 Call 语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。
  比如我们经常用的消息对话框函数Msgbox,就能通过返回值检测出点击的按钮。
   MsgBox MsgBox("test", vbYesNoCancel)
  在运行后,第一个消息框显示的内容是test,并且有三个按钮:是,否,取消(英文版本是YES,NO,CANCEL)。
  当单击任意一个按钮结束后,会显示第2个消息框,显示的内容是一个整数,代表着在第一个消息框中所击的按钮。

  如果只是写成这样MsgBox("test", vbYesNoCancel)的话,会有编译错误(提示缺少=),
  只能改成MsgBox "test", vbYesNoCancel

评分

参与人数 1学分 +2 收起 理由
maoboybaba + 2 学习

查看全部评分

发表于 2013-12-16 08:55 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-21 20:52 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-29 15:33 | 显示全部楼层
{:1112:}
回复

使用道具 举报

发表于 2014-1-27 14:04 | 显示全部楼层
修炼第20集中
call 和不加call 学会了
回复

使用道具 举报

发表于 2014-4-9 02:48 | 显示全部楼层
爱死你了,为什么不早几年发呢
回复

使用道具 举报

发表于 2014-4-25 16:37 | 显示全部楼层
没有看懂啊 求教
回复

使用道具 举报

发表于 2014-5-6 12:52 | 显示全部楼层
打牢基础……
回复

使用道具 举报

发表于 2014-6-15 22:36 | 显示全部楼层
谢谢老师分享,标记,二十
回复

使用道具 举报

发表于 2014-6-17 17:14 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 10:19 , Processed in 0.485875 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表