第十一章 VBA编程.ppt

  1. 1、本文档共128页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参数传递 指主调过程的实参传递给被调过程的形参。 1. 传址与传值 传址: 形参得到的是实参的地址,当形参值的改变同时也改变实参的值。 传值: 形参得到的是实参的值,形参值的改变不会影响实参的值。 例题:两个变量的交换。 Sub Swap1(ByVal x%, ByVal y%) t% = x: x = y: y = t End Sub Private Sub Command1_Click() a% = 10: b% = 20: Swap1 a, b 传值 Print A1=; a, B1=; b a = 10: b = 20: Swap2 a, b 传址 Print A2=; a, B2=; b End Sub Sub Swap2(x%, y%) t% = x: x = y: y = t End Sub 11.5 VBA调试 11.5.1 错误类型 1.程序编制过程中,常见的错误主要有: 2.语法错误 3.运行错误 4.逻辑错误 11.5.2 错误处理 1.设置错误陷阱 2.编写错误处理代码 * 在后续学习InputBox、MsgBox函数时,会用到VbOkOnly、VbOkCancel、VbOk、VbCancel、VbYesNo、VbYes、VbNo等一系列内部常量。 在设置控件的前景色、背景色等颜色属性时,会用到VbRed、VbYellow、VbBlue等一系列内部常量。 * 提高程序可读性,2 使程序易于修改 ,3减少出错机率 * 系统常量往往是用来给对象属性赋值的。 * 能否正确使用变量,搞清变量的作用域是非常重要的,一旦变量的作用域被确定,使用时就要特别注意它的作用范围。当程序运行时,各对象间的数据传递就是依靠变量来完成的,变量的作用范围定义不当,对象间的数据传递就将导致失败。变量的作用域是一个不可忽视的问题,特别是基于面向对象程序设计理念进行应用系统开发时尤为重要。 * “abcde”+12345??? 错误,类型不匹配 “abcdef” 12345? ??结果为“abcdef12345” false+false 结果为0(VB中True用-1表示;False用0表示。 ) false+true 结果为-1 true+true 结果为-2 例11-16 求50!的值(即1×2×3×…×50) Sub factorial50() Dim i As Integer Dim n As Double 请思考,变量类型是否可以定义为Long及为什么 n = 1 为存放乘积结果的变量赋初值 For i = 1 To 50 步长值为1,省略Step字句 n = n * i Next i Debug.Print 50的阶乘值为:; n End Sub 例11-17:求1~1000之间的偶数和。 方法一: Sub even1() Dim i As Integer Dim s As Long 请思考,变量类型是否可以定义为Integer及为什么 s = 0 为累加和变量赋初值 For i = 2 To 1000 Step 2 请思考,语句中的i=2是否可以改为i=0或者i=1 s = s + 1 Next i Debug.Print 1~1000之间的偶数和为:; s End Sub 方法二: Sub even2() Dim i As Integer Dim s As Long请思考,变量类型是否可以定义为Integer及为什么 s = 0 为累加和变量赋初值 For i = 1 To 1000 If i Mod 2 = 0 Then s = s + 1 Next i Debug.Print 1~1000之间的偶数和为:; s End Sub 说明:If i Mod 2 = 0 Then s = s + 1等效于If i/2=Int(i/2) Then s=s+i, 或者If i/2=i\2 Then s=s+i 例11-18 输入任意10个整数,并把这10个整数按从大到小的顺序输出。 分析:采用冒泡法算法,见pp230 建立窗体: 程序代码: 调试图: 冒泡法排序(递减) 算法思想:(将相邻两个数比较,大的调到前头) 1. 有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,大的调到前头,经n-1次两两相邻比较后,最小的数已“沉底”,放在最后一个位

文档评论(0)

celkhn5460 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档