1、 天津财经大学天津财经大学 商学院会计系商学院会计系 第2章 财务建模技术VBA语言精要 【本章重点本章重点】 宏的录制宏的录制 宏的执行宏的执行 数字签名数字签名 天津财经大学天津财经大学 商学院会计系商学院会计系 2.1 VBA与宏 2.2 对象及其属性、方法和事件 2.3 VBA语法 2.4 VBA运算符 本章目录 【课后习题】 2.5 VBA语句 2.6 过程和函数 2.7 错误处理 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 2.1.1VBA2.1.1VBA简介简介 VBAVBA即即Visual Basic For Applicatio
2、nVisual Basic For Application继承于程序设计语继承于程序设计语 言言Visual BasicVisual Basic,可以看作是,可以看作是VBVB的一个子集。但是,的一个子集。但是,VBAVBA不能不能 独立应用,必须依赖于某种宿主应用程序,如独立应用,必须依赖于某种宿主应用程序,如ExcelExcel、WordWord等。等。 从从Office97Office97版以后,版以后,VBAVBA同时邦定到了同时邦定到了OfficeOffice办公软件的所办公软件的所 有应用程序,如有应用程序,如WordWord、ExcelExcel、AccessAccess、Pow
3、erpointPowerpoint、OutlookOutlook 等,成为了真正意义上的“共享语言”。等,成为了真正意义上的“共享语言”。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 2.1.22.1.2宏宏 宏是一系列宏是一系列ExcelExcel能够执行的能够执行的VBAVBA语句,它是一个指令的集语句,它是一个指令的集 合,可以使合,可以使ExcelExcel自动执行用户录制的一系列操作的集合。在自动执行用户录制的一系列操作的集合。在 ExcelExcel中,可以直接录制并运行宏,而无须用户掌握任何中,可以直接录制并运行宏,而无须用户掌握任
4、何VBAVBA编编 程基础。当录制宏时,程基础。当录制宏时,ExcelExcel会自动记录用户所执行的一系列会自动记录用户所执行的一系列 命令组合。当执行所录制的宏时,命令组合。当执行所录制的宏时,ExcelExcel会自动进行“回放”,会自动进行“回放”, 将所录制的命令组合重新执行一次。将所录制的命令组合重新执行一次。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 1.1.录制宏录制宏 在功能区“开发工具”选项卡中,单击“录制宏”,出在功能区“开发工具”选项卡中,单击“录制宏”,出 现录制新宏对话框。现录制新宏对话框。 输入宏的名称“输入宏的名
5、称“zt_ktzt_kt”,也可为宏指定快捷键,如,也可为宏指定快捷键,如 “+a”+a”,然后单击“确定”按钮,进入录制状态,同时,然后单击“确定”按钮,进入录制状态,同时 “录制宏”按钮变为“停止录制”。“录制宏”按钮变为“停止录制”。 执行需要录制的操作。执行需要录制的操作。 宏录制完毕,单击“停止录制”按钮停止该宏的录制。宏录制完毕,单击“停止录制”按钮停止该宏的录制。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 2.2.理解宏理解宏 3.3.执行宏执行宏 通过工具按钮执行宏通过工具按钮执行宏 在功能区“开发工具”选项卡中,单击“宏”,在
6、此选择在功能区“开发工具”选项卡中,单击“宏”,在此选择 需要执行的宏。需要执行的宏。 通过快捷键执行宏通过快捷键执行宏 如果在录制宏的过程中,为宏指定了快捷键,可以直接按如果在录制宏的过程中,为宏指定了快捷键,可以直接按 快捷键执行该宏。快捷键执行该宏。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 通过表单工具中的命令按钮执行宏通过表单工具中的命令按钮执行宏 通过图形对象执行宏通过图形对象执行宏 将已有宏添加至快速访问工具栏将已有宏添加至快速访问工具栏 在在Excel2007Excel2007选项对话框中,选择“自定义”,然后在选项对话框中,选
7、择“自定义”,然后在 “从下列位置选择命令”下拉框中选择“宏”,系统会列出已“从下列位置选择命令”下拉框中选择“宏”,系统会列出已 有宏,选择需要的宏,再单击“添加”按钮将其添加至快速访有宏,选择需要的宏,再单击“添加”按钮将其添加至快速访 问工具栏。此时,快速访问工具栏中便会出现一个新的工具按问工具栏。此时,快速访问工具栏中便会出现一个新的工具按 钮,单击此按钮可执行其代表的宏。钮,单击此按钮可执行其代表的宏。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 在在Excel2003Excel2003中,还可通过以下方法执行宏:中,还可通过以下方法执
8、行宏: 通过自定义工具按钮执行宏通过自定义工具按钮执行宏 通过自定义菜单执行宏通过自定义菜单执行宏 4.4.数字签名数字签名 (1)(1)如果需要保留宏功能,应将文件另存为“如果需要保留宏功能,应将文件另存为“ExcelExcel启用宏启用宏 的工作簿(的工作簿(* *. .xlsmxlsm)”文件。)”文件。 (2)(2)在功能区“开发工具”选项卡中,单击“宏安全性”在功能区“开发工具”选项卡中,单击“宏安全性” 按钮,可设置宏安全选项,如图所示:按钮,可设置宏安全选项,如图所示: 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 天津财经大学天津财
9、经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 (3)(3)为避免宏带来的潜在安全问题,可选择“禁用无数字为避免宏带来的潜在安全问题,可选择“禁用无数字 签署的所有宏”,并对含有宏的工作簿文件进行数字签名。经签署的所有宏”,并对含有宏的工作簿文件进行数字签名。经 过数字签名验证的宏可以和未经签名验证的宏区分开来,既可过数字签名验证的宏可以和未经签名验证的宏区分开来,既可 以在较高的安全级别上运行,同时又可以避免未经验证的代码以在较高的安全级别上运行,同时又可以避免未经验证的代码 恶意入侵。恶意入侵。 (4)(4)可以利用可以利用Microsoft OfficeMicr
10、osoft Office提供的“提供的“VBAVBA项目的数字证项目的数字证 书”工具来创建一个个人数字证书以进行自我验证。书”工具来创建一个个人数字证书以进行自我验证。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 (3)(3)为避免宏带来的潜在安全问题,可选择“禁用无数字为避免宏带来的潜在安全问题,可选择“禁用无数字 签署的所有宏”,并对含有宏的工作簿文件进行数字签名。经签署的所有宏”,并对含有宏的工作簿文件进行数字签名。经 过数字签名验证的宏可以和未经签名验证的宏区分开来,既可过数字签名验证的宏可以和未经签名验证的宏区分开来,既可 以在较高的
11、安全级别上运行,同时又可以避免未经验证的代码以在较高的安全级别上运行,同时又可以避免未经验证的代码 恶意入侵。恶意入侵。 (4)(4)可以利用可以利用Microsoft OfficeMicrosoft Office提供的“提供的“VBAVBA项目的数字证项目的数字证 书”工具来创建一个个人数字证书以进行自我验证。书”工具来创建一个个人数字证书以进行自我验证。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 (5)(5) 可以运行“开始可以运行“开始| |所有程序所有程序|Microsoft |Microsoft Office|MicrosoftOff
12、ice|Microsoft OfficeOffice工具工具|VBA|VBA项目的数字证书”来创建项目的数字证书”来创建 个人数字证书。个人数字证书。 (6)(6)打开包含宏的工作簿,进入打开包含宏的工作簿,进入Visual BasicVisual Basic开发环境开发环境, ,选选 择菜单“工具择菜单“工具| |数字签名”,可利用个人数字证书对包含宏的数字签名”,可利用个人数字证书对包含宏的 工作簿进行签名。工作簿进行签名。 (7)(7)删除数字证书。可通过删除数字证书。可通过WindowsWindows控制面板中的控制面板中的 “InternetInternet选项”来删除数字证书。选项
13、”来删除数字证书。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.1 VBA与宏 2.1.3VBA2.1.3VBA开发环境开发环境 2.1.42.1.4执行执行VBAVBA程序的方法程序的方法 除前文介绍的执行宏的几种常见方法外,还可以通过以下除前文介绍的执行宏的几种常见方法外,还可以通过以下 几种方法来执行几种方法来执行VBAVBA程序。程序。 1.1.在在VBEVBE中执行中执行VBAVBA程序程序 2.2.通过事件触发执行通过事件触发执行VBAVBA程序程序 3.3.通过自定义菜单栏执行通过自定义菜单栏执行VBAVBA程序程序 天津财经大学天津财经大学 商学
14、院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 2.2.12.2.1对象对象 所谓对象,是指把实现某功能的代码和数据封装成一个可所谓对象,是指把实现某功能的代码和数据封装成一个可 以整体调用的组合单元。以整体调用的组合单元。 Excel VBAExcel VBA提供了很多的对象,如工作簿、工作表、区域、提供了很多的对象,如工作簿、工作表、区域、 菜单、工具栏、窗体、图形、图表等,并且各对象之间相互关菜单、工具栏、窗体、图形、图表等,并且各对象之间相互关 联,构成了一个有机的整体。联,构成了一个有机的整体。ApplicationApplication对象位于最上层,对
15、象位于最上层, 代表了整个代表了整个ExcelExcel应用程序,它包括了应用程序的各种选项以应用程序,它包括了应用程序的各种选项以 及当前活动的各种对象。及当前活动的各种对象。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 在在VBAVBA中,要访问一个对象,就必须清楚该对象在对象体中,要访问一个对象,就必须清楚该对象在对象体 系中所处的位置,并利用对方访问运算符“系中所处的位置,并利用对方访问运算符“”从包含该对象从包含该对象 的最上层对象开始由上至下逐层访问下级对象一直到要访问的的最上层对象开始由上至下逐层访问下级对象一直到要访
16、问的 对象位置(有时候某些上层对象可以省略)。例如,要访问工对象位置(有时候某些上层对象可以省略)。例如,要访问工 作表“作表“Sheet1”Sheet1”的“的“A1”A1”单元格,语法格式为:单元格,语法格式为: Application.ActiveWorkbook.WorksheetsApplication.ActiveWorkbook.Worksheets(“sheet1”“sheet1”). . RangeRange(”(”A1”A1”),或者简写为:),或者简写为:WorksheetsWorksheets(“sheet1”“sheet1”). . RangeRange(”(”A1”
17、A1”)。)。 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 2.2.22.2.2属性属性 属性就是对象所具有的特性。不同的对象可能具有相同的属性就是对象所具有的特性。不同的对象可能具有相同的 属性,如名称等,但往往是不同的对象具有不同的属性。属性属性,如名称等,但往往是不同的对象具有不同的属性。属性 的取值称为属性值。属性一般只读和非只读之分,只读属性在的取值称为属性值。属性一般只读和非只读之分,只读属性在 程序运行期间是不能动态更新的,只能读取;而非只读属性在程序运行期间是不能动态更新的,只能读取;而非只读属性在 程序运行期间可以
18、动态更新。通过为对象赋予不同的属性值可程序运行期间可以动态更新。通过为对象赋予不同的属性值可 以改变对象的特征。为对象的属性赋值有以下两种方法:以改变对象的特征。为对象的属性赋值有以下两种方法: 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 1.1.一种是在设计状态下通过一种是在设计状态下通过VBEVBE中的属性窗口进行静态设中的属性窗口进行静态设 置。置。 2.2.在程序运行过程中利用赋值语句进行动态设置,其一般在程序运行过程中利用赋值语句进行动态设置,其一般 格式为:格式为:。例如,可以使用以。例如,可以使用以 下下VBAVBA语
19、句将当前工作表“语句将当前工作表“A1A1:F5”F5”区域的字体颜色设置为红区域的字体颜色设置为红 色:色: ActiveSheet.RangeActiveSheet.Range(“A1:F5”).(“A1:F5”).Font.ColorFont.Color=RGB(255,0,0)=RGB(255,0,0) 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 2.2.32.2.3方法方法 方法是对象所能够支持的某些特定行为和动作,如查找、方法是对象所能够支持的某些特定行为和动作,如查找、 删除、显示、打印等。删除、显示、打印等。 调用对
20、象方法的一般格式为:调用对象方法的一般格式为:参参 数数 。当缺省对象时,默认的对象是当前窗体。有的方法是带。当缺省对象时,默认的对象是当前窗体。有的方法是带 参数的,而有的方法可能不带参数。每种对象都支持一些特定参数的,而有的方法可能不带参数。每种对象都支持一些特定 的方法。例如,可以使用以下的方法。例如,可以使用以下VBAVBA语句,对当前工作簿的语句,对当前工作簿的 “sheet1”sheet1”工作表进行保护:工作表进行保护: 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.2 对象及其属性、方法和事件 2.2.32.2.3方法方法 Worksheets(“
21、sheet1”).protect “password”Worksheets(“sheet1”).protect “password”,其中,其中 protectprotect是方法名,是方法名,passwordpassword是密码。是密码。 再如,可以使用以下再如,可以使用以下VBAVBA语句取消对当前工作簿的语句取消对当前工作簿的 “sheet1”sheet1”工作表的保护:工作表的保护: Worksheets(“sheet1”).Unprotect “password”Worksheets(“sheet1”).Unprotect “password”,其,其 中中UnprotectUnp
22、rotect是方法名,是方法名,passwordpassword是密码。是密码。 天津财经大学天津财经大学 商学院会计系商学院会计系 2.2.42.2.4事件事件 VBAVBA程序的执行是由事件驱动的。事件是由程序的执行是由事件驱动的。事件是由VBAVBA预先设置好预先设置好 的能被对象识别的特定动作。系统会为每个事件规定一个名字,的能被对象识别的特定动作。系统会为每个事件规定一个名字, 如如ClickClick、DblClickDblClick、MouseMoveMouseMove、KeyPressKeyPress等。当用户操作触等。当用户操作触 发了某个系统事件后,该事件所对应的子过程就会
23、被执行,事发了某个系统事件后,该事件所对应的子过程就会被执行,事 件过程的格式如下:件过程的格式如下: Sub ( 参数参数 ) End SubEnd Sub 目录目录 本节本节 2.2 对象及其属性、方法和事件 天津财经大学天津财经大学 商学院会计系商学院会计系 在设计在设计VBAVBA程序时,只要在相应的事件过程中编写特定的程序时,只要在相应的事件过程中编写特定的 程序代码即可,然后该程序代码便会由事件驱动而被执行。例程序代码即可,然后该程序代码便会由事件驱动而被执行。例 如,在工作表中添加一个命令按钮,其名称为“如,在工作表中添加一个命令按钮,其名称为“cmd1”cmd1”。我们。我们
24、希望,当用户单击该按钮时将对当前工作表进行保护。按照事希望,当用户单击该按钮时将对当前工作表进行保护。按照事 件驱动的思路,只要编写以下事件过程即可。件驱动的思路,只要编写以下事件过程即可。 Sub cmd1_Click()Sub cmd1_Click() Activesheet.ProtectActivesheet.Protect End SubEnd Sub 目录目录 本节本节 2.2 对象及其属性、方法和事件 天津财经大学天津财经大学 商学院会计系商学院会计系 2.3.1VBA2.3.1VBA的关键字和标识字符的关键字和标识字符 1.1.关键字关键字 在在VBAVBA中,系统规定了一些固
25、定的带有特殊意义的字符串,中,系统规定了一些固定的带有特殊意义的字符串, 这些字符串就是关键字,包括语句、运算符、符号常量等等。这些字符串就是关键字,包括语句、运算符、符号常量等等。 用户不能改变关键字,并且在定义宏名、变量名等字符串时,用户不能改变关键字,并且在定义宏名、变量名等字符串时, 不能与这些关键字相同。不能与这些关键字相同。 VBAVBA中常用的关键字如下表所示:中常用的关键字如下表所示: 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 2.3.2
26、VBA2.3.2VBA的数据类型的数据类型 1.1.基本数据类型基本数据类型 VBAVBA提供了丰富的数据类型,这些数据类型可用于变量和提供了丰富的数据类型,这些数据类型可用于变量和 常量。不同的数据类型有不同的存储空间,对应的数值范围也常量。不同的数据类型有不同的存储空间,对应的数值范围也 有所不同。有所不同。VBAVBA提供的常用数据类型如下表所示:提供的常用数据类型如下表所示: 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 2.2.自定义数据类型自定义
27、数据类型 利用利用VBAVBA的基本数据类型还可以构造用户自己的数据类型,的基本数据类型还可以构造用户自己的数据类型, 方法是使用方法是使用TypeType命令。命令。 可以在标准模块、窗体、工作表的声明部分定义私有自定可以在标准模块、窗体、工作表的声明部分定义私有自定 义数据类型,此时自定义数据类型只限于在声明它的模块、窗义数据类型,此时自定义数据类型只限于在声明它的模块、窗 体或工作表中使用。体或工作表中使用。 另外,在标准模块中还可以定义公共自定义数据类型,此另外,在标准模块中还可以定义公共自定义数据类型,此 时自定义数据类型在工作簿的各模块、窗体或工作表中均可用。时自定义数据类型在工作
28、簿的各模块、窗体或工作表中均可用。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 定义了一种新的数据类型后,利用该数据类型可以声明变定义了一种新的数据类型后,利用该数据类型可以声明变 量。引用自定义数据类型的变量时,一定要注意只能引用变量量。引用自定义数据类型的变量时,一定要注意只能引用变量 的成员,而不能直接引用变量。的成员,而不能直接引用变量。 2.3.3VBA2.3.3VBA的常量与变量的常量与变量 1.1.常量常量 常量用于保存固定数据,其值在程序运行过程中不能改变。常量用于保存固定数据,其值在程序运行过程中不能改变。 对于重复使用而又难以
29、记忆的数值,可以将其声明为符号常量对于重复使用而又难以记忆的数值,可以将其声明为符号常量 以增加程序的可读性和可维护性。以增加程序的可读性和可维护性。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 声明符号常量要用关键字声明符号常量要用关键字ConstConst,其语法格式如下:,其语法格式如下: Public|PrivatePublic|Private Const 关键字关键字PublicPublic用于声明公共全局常量,这种符号常量将可用于声明公共全局常量,这种符号常量将可 以在工作簿内所有模块、窗体和工作表的子过程、函数中使用;以在工作簿内所
30、有模块、窗体和工作表的子过程、函数中使用; PrivatePrivate一般用于声明私有模块级常量,这种符号常量将只能一般用于声明私有模块级常量,这种符号常量将只能 用于声明它的模块、窗体或工作表中的子过程和函数中;省略用于声明它的模块、窗体或工作表中的子过程和函数中;省略 PublicPublic和和PrivatePrivate时,将用于声明过程级局部变量,这种符号时,将用于声明过程级局部变量,这种符号 常量只能在声明它的过程中使用。常量只能在声明它的过程中使用。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 2.2.变量变量 变量用于临时保存数
31、据,而且其值在程序运行过程中可以变量用于临时保存数据,而且其值在程序运行过程中可以 改变。变量按其生存期可分为静态变量和动态变量;按其作用改变。变量按其生存期可分为静态变量和动态变量;按其作用 域可分为局部变量、公共变量和私有模块级变量。声明变量的域可分为局部变量、公共变量和私有模块级变量。声明变量的 语法格式如下:语法格式如下: Dim|Private|Public|StaticDim|Private|Public|Static 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 关键字关键字DimDim用于声明过程级局部动态变量,其作用域仅限用于声明
32、过程级局部动态变量,其作用域仅限 于声明它的子过程,退出该子过程该变量不再可用,并且被释于声明它的子过程,退出该子过程该变量不再可用,并且被释 放。放。 关键字关键字PrivatePrivate一般用于声明私有模块级动态变量,其作一般用于声明私有模块级动态变量,其作 用域限于声明它的模块、窗体或工作表,退出该模块或窗体后用域限于声明它的模块、窗体或工作表,退出该模块或窗体后 该变量将不再可用,并且被释放。该变量将不再可用,并且被释放。 关键字关键字PublicPublic用于声明公共全局变量,其作用域是整个工用于声明公共全局变量,其作用域是整个工 作簿的各个模块、窗体和工作表的所有子过程和函数
33、,在程序作簿的各个模块、窗体和工作表的所有子过程和函数,在程序 运行期间一直都存在。运行期间一直都存在。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 关键字关键字StaticStatic用于声明静态过程级局部变量,静态变量的用于声明静态过程级局部变量,静态变量的 特点是在程序运行期间始终存在,不被释放,其值可以一直保特点是在程序运行期间始终存在,不被释放,其值可以一直保 留,但存在不等于可用,其作用域仍然是限于声明它的过程或留,但存在不等于可用,其作用域仍然是限于声明它的过程或 函数内部,在该过程或函数以外不可见。函数内部,在该过程或函数以外不可
34、见。 3.3.数组数组 数组是一组具有相同名字和有序下标的同类型元素的集合,数组是一组具有相同名字和有序下标的同类型元素的集合, 可以用相同的名字和不同的下标来引用数组元素。数组为用户可以用相同的名字和不同的下标来引用数组元素。数组为用户 处理同一类型的成批数据提供了方便,特别是结合循环语句的处理同一类型的成批数据提供了方便,特别是结合循环语句的 使用将会更加便利。使用将会更加便利。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 定义数组定义数组 定义数组的语法格式如下:定义数组的语法格式如下: Dim|Private|Public|StaticD
35、im|Private|Public|Static (下界下界1 To ,下界下界2 To,)As 其中,关键字其中,关键字DimDim、PrivatePrivate、PublicPublic、StaticStatic的含义同变的含义同变 量的定义;下界与上界必须是整数,上下界的对数决定了数组量的定义;下界与上界必须是整数,上下界的对数决定了数组 的维数,如果省略下界,默认值为的维数,如果省略下界,默认值为0 0。可以在窗体或模块的声。可以在窗体或模块的声 明部分加上语句:明部分加上语句:Option Base nOption Base n来设置下界的默认值,其中来设置下界的默认值,其中n n
36、是要指定的下界默认值,只能取是要指定的下界默认值,只能取0 0和和1 1两个值。两个值。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 数组应用举例数组应用举例 下面的子过程利用数组接收下面的子过程利用数组接收1010个学生的成绩,然后输出总个学生的成绩,然后输出总 成绩和平均成绩。成绩和平均成绩。 Sub p()Sub p() Dim a As Dim a As Single,bSingle,b As As Single,sSingle,s(1 To 10) As Single(1 To 10) As Single Dim Dim i i As
37、IntegerAs Integer For For i i=1 To 10=1 To 10 s(s(i i)=)=InputBoxInputBox(“(“请输入第”请输入第” & & i i &”&”个学生成绩:”个学生成绩:”) ) a=a=a+sa+s( (i i) ) 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 Next Next i i b=a/10b=a/10 MsgBoxMsgBox “总成绩为:”总成绩为:” & a& a MsgBoxMsgBox”平均成绩为:”平均成绩为:”& b& b End SubEnd Sub 动态数组动态
38、数组 定义数组后,系统将为其预留所需要的内存区域。根据预定义数组后,系统将为其预留所需要的内存区域。根据预 留内存区域的方式不同,数组可分为静态数组和动态数组。留内存区域的方式不同,数组可分为静态数组和动态数组。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 动态数组在程序没有运行时不会占用内存空间,在程序运动态数组在程序没有运行时不会占用内存空间,在程序运 行时才会临时获得内存空间,定义时下标是变量。定义动态数行时才会临时获得内存空间,定义时下标是变量。定义动态数 组可分为两个步骤:先在窗体、模块或子过程中定义一个没有组可分为两个步骤:先在窗体、
39、模块或子过程中定义一个没有 下标的数组(该步骤也可以省略),然后在子过程中用下标的数组(该步骤也可以省略),然后在子过程中用ReDimReDim 语句声明带下标的数组。语句声明带下标的数组。 目录目录 本节本节 2.3 VBA语法 天津财经大学天津财经大学 商学院会计系商学院会计系 2.4.12.4.1算术运算符算术运算符 目录目录 本节本节 2.4 VBA2.4 VBA运算符运算符 天津财经大学天津财经大学 商学院会计系商学院会计系 2.4.22.4.2字符串运算符字符串运算符 字符串运算符用来连接两个字符串,从而得到一个新的字字符串运算符用来连接两个字符串,从而得到一个新的字 符串,包括“
40、符串,包括“&”&”和“和“+”+”两个运算符。两个运算符。 例如,”例如,”abcabc”&”123”=”abc123”&”123”=”abc123”。 2.4.32.4.3关系运算符关系运算符 关系运算符包括关系运算符包括= =、 、=、 If 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 If Then End IfEnd If If Then ElseElse End IfEnd If 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 If Then ElseIfElse
41、If Then ElseIfElseIf Then End IfEnd If 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 If Then ElseIfElseIf Then ElseElse End IfEnd If 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 2.IIf2.IIf函数函数 如果要执行简单的条件判断操作,可以使用如果要执行简单的条件判断操作,可以使用IIfIIf函数,其函数,其 语法格式为:语法格式为: IIfIIf(,) 当条件成立时返回表达式当条件成立
42、时返回表达式1 1的值,否则返回表达式的值,否则返回表达式2 2的值。的值。 3.Select Case3.Select Case语句语句 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 Select Case Case Case Case ElseCase Else End SelectEnd Select 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 2.5.32.5.3循环语句循环语句 1.ForNext1.ForNext 语法格式:语法格式: For For 循环变量循
43、环变量= =初值初值 To To 终值终值 Step Step 步长步长 Next Next 循环变量循环变量 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 2.WhileWend2.WhileWend While WendWend 3.DoLoop3.DoLoop DoLoopDoLoop语句有两种语法格式。语句有两种语法格式。 DoDo Loop Loop While|UntilWhile|Until 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 Do Do While|
44、UntilWhile|Until LoopLoop 2.5.42.5.4其他语句其他语句 1.With1.With 用于自定义数据类型用于自定义数据类型 用于对象用于对象 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 2.Exit2.Exit ExitExit语句的作用是强行退出各种循环语句、函数或子过程。语句的作用是强行退出各种循环语句、函数或子过程。 要退出要退出ForFor循环可以使用循环可以使用Exit ForExit For语句;要退出语句;要退出DoDo循环可以使循环可以使 用用Exit DoExit Do语句;要退出某个
45、函数可以使用语句;要退出某个函数可以使用Exit FunctionExit Function语句;语句; 要退出某个子过程,可以使用要退出某个子过程,可以使用Exit SubExit Sub语句。语句。 3.End3.End EndEnd语句的作用主要是强行结束子过程,不带任何参数。语句的作用主要是强行结束子过程,不带任何参数。 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 4.MsgBox4.MsgBox MsgBoxMsgBox语句用于建立一个对话框显示提示信息,其语法格语句用于建立一个对话框显示提示信息,其语法格 式如下:式如下
46、: MsgBoxMsgBox ,Buttons,Title,Buttons,Title,HelpFile,ContextHelpFile,Context 其中,参数其中,参数PromptPrompt代表要显示的提示信息,是必选参数;代表要显示的提示信息,是必选参数; 参数参数ButtonsButtons用于指定对话框中按纽的数量、形式、图标、默用于指定对话框中按纽的数量、形式、图标、默 认按纽、强制返回等内容,可以是整数或符号常量;参数认按纽、强制返回等内容,可以是整数或符号常量;参数 TitleTitle用于设置对话框的标题,是可选参数;最后两个参数用用于设置对话框的标题,是可选参数;最后两
47、个参数用 于设置帮助文件信息,是可选参数。于设置帮助文件信息,是可选参数。 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 此外,此外,VBAVBA提供两个输入输出函数:提供两个输入输出函数:MsgBoxMsgBox函数和函数和 InputBoxInputBox函数。函数。 MsgBoxMsgBox函数函数 MsgBoxMsgBox(,Buttons,Title,Buttons,Title,HelpFileHelpFile, , ContextContext) MsgBoxMsgBox函数的作用及参数与函数的作用及参数与MsgBoxMsgBox语句相同,只不过具有语句相同,只不过具有 返回值,返回值是用户在对话框中的选择结果,即按了哪个按返回值,返回值是用户在对话框中的选择结果,即按了哪个按 钮。钮。 目录目录 本节本节 2.5VBA2.5VBA语句语句 天津财经大学天津财经大学 商学院会计系商学院会计系 InputBoxInputBox函数函数 InputBoxInputBox(,Title,Default,Title,Default,Xpos,YposXpos,Ypos ,HelpFile,ContextHelpFile,Context ) InputBoxInput
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。