- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch4 自定义用户窗体
第四章 自定义用户窗体
本章包括
如何书写Sub过程及Function函数
如何向过程或函数传递参数
过程或函数的调用与调试
在过程或函数中使用错误处理技术
在过程或函数中使用Windows API
VBA编程示例与技巧
一些有用的VBA过程与函数
在C语言编程中,无论是否返回值,都称为函数。与C语言编程不一样的是,不返回值的称为Sub过程,而返回值的则称为Function函数。与前面的章节不一样的是,自本章开始,将沿用这一习惯,即称没有返回值的Sub为过程,有返回值的Function为函数。
本章将介绍Sub和Function的书写,参数的声明与传递,调用与调试,使用错误处理技术,使用Windows API,最后将介绍一些有用的编程示例与技巧。
4.1 Sub过程与Function函数
确定是使用Sub关键字还是Function关键字,看这个过程是否需要返回值。当需要返回值时,使用Function,否则使用Sub关键字。
4.1.1 Sub过程
书写Sub过程的语法如下:
4.1.2 Function函数
Function函数的书写格式与Sub大致相同,不同之处在于Function函数需要返回一个值。Function的语法如下:
[Public | Private] Function 函数名(参数表) As 返回数据类型
语句系列1
[Exit Function]
语句系列2
函数名 = 返回值
End Function
下面以一个返回两数和的函数Add为例:
Public Function Add(a As Integer, b As Integer) As Integer
Add = a + b
End Function
调用Function的方法有两种:
从一个Sub过程中调用
在单元格的自定义公式中调用
控制函数的重新计算
在工作表公式中使用自定义函数的时候,何时被重新计算呢?
自定义函数的行为类似于Excel内置的工作表函数。通常,只有当必须要这么做的时候(只有在修改函数的任意参数的时候才必须要这么做)才重新计算自定义函数。然而,可以强制函数更频繁地进行重新计算。向Function过程添加如下语句之后,无论何时重新计算工作表,都会重新计算函数。如果是在自动重算的模式下,无论何时更改任何的单元格,都会发生重新计算的动作。
Application.Volatile True
Application对象的Volatile方法只有一个参数(值为True或者False)。将Function过程标记为易失性函数,从而无论何时工作表中的任意单元格重新计算,都会强制计算该函数。
例如,可以编写如下的动态随机函数:
Public Function DynRndNumber(max As Integer, min As Integer) As Integer
Application.Volatile (True)
DynRndNumber = Int(max - min + 1) * Rnd + min
End Function
该函数返回一个介于max和min之间的随机数(整数)。
为了强行实施整个重新计算,也凶手非易失性自定义函数,可以按Ctrl + Alt + F9快捷键。
_______________________________________________________________________________
4.2 使用错误处理技术
当VBA过程正在运行的时候,有可能会出现错误。这些错误可以分为“语法错误”(在执行过程之前必须要纠正)和“运行时错误”两种。这一节将讲述如何正确地处理这些错误。
为了使得错误处理过程起作用,必须关闭“发生错误则中断”设置。在VBE中,选择“工具”→“选项”命令,然后在“选项”对话框中单击“通用”选项卡。如果选中了“发生错误则中断”选项,那么VBA将忽略错误处理代码。通常都希望使用“遇到未处理的错误时中断”选项。
4.2.1 捕获错误
可以使用On Error语句指定错误发生时要采取的措施。基本上有两种办法:
忽略错误并允许VBA继续执行代码。可以在以后检查Err对象,然后确定错误所在以及必要时所采取的动作。
跳转到代码中特殊的错误处理节,进而采取动作。这一节代码位于过程的末尾,还用标签进行了标识。
4.2.2 错误处理示例
4.2.3 对工作表进行排序处理的示例
这是一个对当前活动工作簿中所有工作表进行排序的示例,请注意体会其中的错误处理方法。
4.4 深入讨论函数
在继续学习之前,有必要对VBA函数的参数与返回值进行一些有益的讨论。比如说,如何向一个函数传递一个数组参数,向函数传递可选参数,从函数返回数组,从函数返回错误值,以及接收
文档评论(0)