1、一个问题 在员工信息表中,根据身份证号填充各员工的性别?使用过程(P.75)本讲内容过程的概念Sub子过程Function函数过程过程的概念(P.75)过程是一段完成特定功能的语句集合,以一个名字来标识,并用该名字来调用 根据是否有返回值,可以将过程分成两类:Sub子过程Function函数过程Sub子过程(P.76)Sub子过程用于运行指定的操作,但不返回运行结果,其结构如下:Sub子过程 过程的组成部分及其含义Public可选的。表示所有模块的所有其它过程都可访问这个Sub过程。Private可选的。表示只有在包含其声明的模块中的其它过程可以访问该Sub过程。Static可选的。表示在调用
2、之后保留Sub过程中各局部变量的值。name必需的必需的。Sub过程的名字,须遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给Sub过程的参数列表。多个参数则用逗号逗号隔开。Sub子过程 特别说明:如果没有使用Public、Private显式指定,则缺省表示Sub过程是公用的(Public)arglist中的具体参数的格式通常为:varname()As type不能在别的过程中定义Sub过程Exit Sub语句使执行立即从Sub过程中退出,它可以出现在过程中的任何位置Sub子过程 添加Sub子过程Sub子过程 实例1:编写一个名称为Example的Sub过程,该过程用于在当前
3、活动工作表A1:A10区域的各单元格内填上“VBA”文本,且字号大小依次从10等差渐变到28Sub子过程练一练:编写一个名称为Practice的Sub过程,该过程用于在当前活动工作表A1:J1区域的各单元格内填上“SUB”文本,且随机设置各单元格为不同的背景填充色Sub子过程带参数的Sub子过程:Sub子过程 调用Sub子过程过程名 参数列表如:HouseCalc 99800,43100Call 过程名(参数列表)如:Call HouseCalc(380950,49500)Sub子过程Sub子过程 实例2:编写一个名为Example的Sub过程,该过程用于输入一个文本,然后调用编写的另外一个名
4、为MySub的子过程,MySub子过程用于在当前活动工作表A1:A10区域的各单元格内填上Example子过程输入的文本,并设置字号大小依次从10等差渐变到28Sub子过程练一练:编写一个名称为Practice的Sub过程,该过程用于随机生成一个3,9之间的整数x,然后调用编写的另外一个名为MySub的子过程,MySub子过程用于在当前活动工作表A1单元格起输出x行如图所示的星号三角形Function函数过程(P.82)Function函数过程用于完成指定的功能,并通过函数名返回运行结果,它的结构为:Function函数过程 特别说明:Function函数过程的各组成部分含义同Sub子过程函数
5、通常要返回一个值,这个返回值的数据类型通过在定义时用As Type来指定运行结果是通过函数名返回的,因此,过程中通常有name=expression这样的语句Function函数过程 添加Function函数过程Function函数过程 调用Function函数过程 自定义的Function函数过程使用像内置函数一样的调用方法,分两种情况:需得到函数的返回值不在意函数的返回值Function函数过程 Function函数过程的使用在VBA程序代码中调用在Excel工作表的公式中调用Function函数过程 在VBA程序代码中调用(P.84)实例3:自定义一个名为 MySum 的函数过程,其用于
6、计算 1 到 n 各自然数的和,在当前活动工作表放置两个按钮,其中一个按钮在单击时先调用MySum函数求出1到100各数的和,并将此和加上100显示在A1单元格,另一个按钮在单击时先调用MySum函数求出1到10各数的和,并将此乘上100显示在B1单元格Function函数过程 在VBA程序代码中调用练一练:自定义一个名为 MySum 的函数过程,其用于计算m到n之间各整数的和,在当前活动工作表放置两个按钮,其中一个按钮在单击时先输入两个正整数x和y,然后调用 MySum 函数求出x到y之间各数的和并显示在 A1 单元格,另一个按钮在单击时先输入一个正整数 b,然后随机生成一个1,b 之间的整
7、数 a,最后调用 MySum 函数求出 a到 b 之间各数的和并显示在 B1 单元格Function函数过程 在Excel工作表的公式中调用(P.85)若自定义函数是用Public修饰的公用函数,则在Excel的“插入函数”对话框中能找到此函数Function函数过程 在Excel工作表的公式中调用 实例4:在员工信息表中,自定义一个函数 Gender,该函数用于判断某身份证持有人的性别,然后在 Sheet1 的 D 列调用此函数根据身份证号填充各员工的性别?Function函数过程 在Excel工作表的公式中调用练一练:新建一个工作簿,在Sheet1工作表的A列输入15个年份,分别从2000年到2014年。自定义一个函数 IsLeap,该函数用于判断某个年份是否为闰年,是则返回True,否则返回False,然后在Sheet1的B列调用此函数判断A列各年份是否为闰年Function函数过程 在Excel工作表的公式中调用练一练:某企业的年终奖金按销售业绩来发放,标准奖金率见下表,但为了激励员工的忠诚,实际计算时,奖金率还要加上工龄一半的百分数,试自定义一个函数Reward,然后在“员工奖金”工作簿Sheet1工作表的“奖金”列中调用此函数计算各员工的奖金月销售额月销售额奖金率奖金率月销售额月销售额奖金率奖金率=3000500005000020%20%