微信扫一扫,移动浏览光盘
简介
本书结合500多个精选实例,详细介绍了Excel VBA的基础知识和应用技
巧,包括Excel VBA编程基础知识,操作、管理Excel VBA常见对象
(Application对象、Workbook对象、Worksheet对象、Range对象、窗体控件
对象及对象事件),创建自定义菜单和自定义工具栏,利用Excel VBA处理工
作表数据、操作文件和文件夹及保护工作簿应用程序等。
本书适合于具有Excel基础知识和Excel VBA基础知识的人员阅读,特别
是想要学习Excel VBA但却无从下手,想尽快掌握Excel VBA基本知识的人员
阅读,也适用于开发公司信息管理应用系统的人员阅读。本书可作为大专院
校相关专业本科生、研究生、MBA学员以及各类培训班的教材或参考书。
目录
第1章 了解Excel宏 1
1.1 录制宏和保存宏 2
1.1.1 录制宏的基本方法 2
1.1.2 录制宏应注意的事项 2
1.2 为宏设置快捷键 3
1.2.1 重新为宏设置快捷键 3
1.2.2 更改宏的快捷键 3
1.3 查看录制的宏 4
1.3.1 查看保存在录制宏工作簿里的宏 4
1.3.2 查看保存在新工作簿里的宏 4
1.3.3 查看保存在个人宏工作簿中的宏 4
1.4 编辑修改录制的宏 5
1.5 运行录制的宏 6
1.5.1 使用快捷键运行宏 6
1.5.2 使用宏对话框运行宏 6
1.5.3 在VBE窗口中运行宏 6
1.5.4 使用Excel窗体运行宏 6
1.5.5 使用ActiveX控件运行宏 7
1.5.6 使用自定义按钮运行宏 9
1.5.7 使用图形对象运行宏 10
1.5.8 在其他过程中运行录制的宏 10
1.6 删除录制的宏 11
1.6.1 删除指定的录制的宏 11
1.6.2 将录制的宏连同保存宏的模块一并删除 11
第2章 使用VBE工具 12
2.1 VBE窗口的结构 13
2.2 设置VBE编辑器属性 13
2.2.1 设置“编辑器”选项卡项目 13
2.2.2 设置“编辑器格式”选项卡项目 15
2.2.3 设置“通用”选项卡项目 16
2.2.4 设置“可连接的”选项卡项目 17
2.3 VBE窗口的菜单栏和工具栏 17
2.3.1 VBE窗口的菜单栏 17
2.3.2 VBE窗口的工具栏 17
2.4 工程资源管理器窗口的结构 18
2.5 操作模块 18
2.5.1 插入模块 18
2.5.2 更改模块的名称 18
2.5.3 删除模块 19
2.6 使用代码窗口 19
2.6.1 代码窗口的结构 19
2.6.2 在代码窗口中只显示某个过程 20
2.6.3 显示模块中的所有过程 20
2.6.4 快速定位到某个过程 20
2.7 使用立即窗口 20
2.7.1 在立即窗口中查看计算结果 20
2.7.2 在立即窗口中执行命令 21
2.8 使用本地窗口 21
2.8.1 本地窗口的结构 21
2.8.2 通过本地窗口检查程序的
2.8.2 变量定义和运算结果 21
2.9 使用VBE的快捷键 22
2.9.1 使用代码编辑键 22
2.9.2 使用代码窗口常用键 22
2.9.3 使用代码窗口定位键 23
2.9.4 使用代码窗口快捷键 23
2.9.5 代码窗口中可使用的菜单快捷键 24
2.9.6 工程资源管理器中的键盘快捷键 25
2.9.7 属性窗口中的键盘快捷键 26
2.9.8 窗体的快捷键 27
第3章 获取VBA帮助信息 28
3.1 获取帮助信息 29
3.2 通过Visual Basic帮助窗口的
3.2 目录得到帮助 30
3.3 快速获取帮助信息 30
第4章 VBA基础语法 31
4.1 数据类型 32
4.1.1 数据类型 32
4.1.2 自定义数据类型 32
4.2 声明变量和常量 33
4.2.1 强制声明变量 33
4.2.2 定义变量应注意的事项 33
4.2.3 定义变量 33
4.2.4 使用类型标识符定义变量 34
4.2.5 定义和使用对象变量 34
4.2.6 定义模块级变量 35
4.2.7 定义公共变量 35
4.2.8 定义常量 35
4.2.9 如何使用VBA内置常量 35
4.3 定义数组 36
4.3.1 定义静态数组 36
4.3.2 定义动态数组 36
4.3.3 将数组的缺省下界设置为1 36
4.3.4 获取数组的最小下标和最大下标 37
4.4 数据运算符 37
4.4.1 赋值运算符 37
4.4.2 数学运算符 37
4.4.3 比较运算符 38
4.4.4 逻辑运算符 38
4.5 语句基本知识 38
4.5.1 写声明语句 38
4.5.2 写赋值语句 38
4.5.3 写可执行语句 39
4.6 循环语句 39
4.6.1 使用For ... Next循环语句 39
4.6.2 使用For Each...Next循环语句 40
4.6.3 退出For循环 41
4.6.4 使用Do ... Loop循环语句 41
4.6.5 退出Do循环 43
4.6.6 使用While ... Wend循环语句 43
4.6.7 循环数组中的所有元素 43
4.6.8 循环对象集合中的所有对象 44
4.6.9 使用多重循环 44
4.7 条件控制语句 44
4.7.1 使用If条件语句 44
4.7.2 使用Select ... Case语句 47
4.8 语句书写技巧 48
4.8.1 将多个语句写在一行上 48
4.8.2 将一个语句断开成数行 48
4.8.3 添加注释语句 49
4.8.4 使用With语句提高程序运行效率 49
第5章 使用工作簿函数和VBA函数 50
5.1 在VBA中使用工作簿函数 51
5.1.1 在VBA过程中调用工作簿函数 51
5.1.2 通过VBA向单元格输入工作簿函数 51
5.1.3 通过VBA向单元格输入普通公式 52
5.1.4 通过VBA向单元格输入数组公式 52
5.1.5 获取单元格中的公式表达式 52
5.1.6 判断某单元格区域是否
5.1.6 为数组公式单元格区域的一部分 53
5.1.7 删除工作表中的所有数据,
5.1.6 但保留所有公式 53
5.2 使用VBA内置函数 54
5.2.1 VBA函数与工作簿函数的区别 54
5.2.2 快速获取函数的参数信息 54
5.2.3 使用VBA日期和时间函数 54
5.2.4 使用VBA字符串函数 55
5.2.5 使用VBA财务函数 55
5.2.6 使用VBA数学函数 56
5.2.7 使用VBA检查函数 56
5.2.8 利用IIf函数返回两个参数中一个值 57
5.2.9 利用Choose函数从参数
5.2.9 列表中选择并返回一个值 57
5.2.10 利用Switch函数从参数
5.1.6 列表中选择并返回一个值 57
5.2.11 重要的VBA函数——
5.1.6 ARRAY:快速输入数据 58
5.2.12 重要的VBA函数——
5.1.6 ARRAY:快速输入行标题和列标题 58
5.2.13 重要的VBA函数——
5.1.6 FORMAT格式函数 58
5.2.14 重要的VBA函数——
5.1.6 输入函数InputBox 59
5.2.15 使用InputBox方法限制
5.1.6 输入特定类型的数据 60
5.2.16 重要的VBA函数——输出函数MsgBox 61
5.2.17 使用不返回值的MsgBox函数 63
第6章 过程和自定义函数 64
6.1 子过程 65
6.1.1 什么是通用子过程 65
6.1.2 创建通用子过程 65
6.1.3 什么是事件子过程 65
6.1.4 创建Application对象的事件子过程 66
6.1.5 创建Chart对象的事件子过程 67
6.1.6 创建工作簿和工作表的事件子过程 67
6.1.7 创建窗体控件的事件子过程 68
6.1.8 调用子过程 68
6.1.9 调用标准模块中的子过程 69
6.1.10 调用窗体对象模块中的过程 69
6.1.11 调用工作表对象中的过程 69
6.1.12 调用工作簿对象中的过程 69
6.1.13 获取某过程中变量的计算结果 69
6.2 自定义函数 70
6.2.1 自定义函数的语法结构 70
6.2.2 创建自定义函数 70
6.2.3 设计参数可选的自定义函数 71
6.2.4 为自定义函数的可选参数指定默认值 71
6.2.5 设计参数个数不定的自定义函数 73
6.2.6 设计返回数组的自定义函数 73
6.2.7 为自定义函数添加提示信息 73
6.2.8 将自定义函数归类 74
6.2.9 在工作表中调用自定义函数 75
6.2.10 在过程中调用自定义函数 75
6.2.11 不返回函数值而直接调用自定义函数 76
6.2.12 调用保存在窗体、工作表、
6.2.12 工作簿等对象中的自定义函数 76
第7章 操作Application对象 77
7.1 获取Excel系统信息 78
7.1.1 获取Excel版本 78
7.1.2 获取Excel的安装路径 78
7.1.3 获取当前用户名 78
7.1.4 获取启动Excel的路径 78
7.1.5 获取打开Excel文件时的默认路径 78
7.1.6 获取当前打印机的名称 79
7.1.7 获取Excel应用程序的标题文字 79
7.1.8 获取“自动恢复”临时文件的路径 79
7.2 自定义Excel窗口 79
7.2.1 修改Excel应用程序的标题文字 79
7.2.2 删除Excel应用程序的标题文字 80
7.2.3 恢复Excel应用程序的默认标题文字 80
7.2.4 删除/恢复Excel菜单项 81
7.2.5 使Excel菜单项或其命令不可操作 81
7.2.6 使Excel的工具栏或其命令按钮不可操作 82
7.2.7 隐藏和显示编辑栏 83
7.2.8 隐藏和显示标准工具栏 83
7.2.9 隐藏和显示格式工具栏 83
7.2.10 隐藏和显示状态栏 84
7.2.11 在状态栏中显示信息 84
7.2.12 将Excel全屏显示 84
7.2.13 隐藏Excel本身 85
7.2.14 改变鼠标指针形状 85
7.3 设置Excel操作选项 86
7.3.1 设置新工作簿中的工作表个数 86
7.3.2 设置工作簿的默认路径 86
7.3.3 设置保存自动恢复文件的
7.3.3 时间间隔和保存位置 86
7.3.4 停止和启用屏幕刷新 87
7.3.5 改变手动和自动计算方式 87
7.3.6 不显示警告信息框 88
7.3.7 显示Excel的内置对话框 88
7.3.8 将厘米转换为磅 88
7.4 制定程序运行计划 89
7.4.1 使程序在指定的时间开始运行 89
7.4.2 定期运行程序以分析数据 89
7.4.3 使程序每隔一段时间就自动运行程序 90
7.4.4 OnTime方法的另一种应用:
5.1.6 禁止改变Excel本身窗口大小 90
7.4.5 取消程序的运行计划 91
7.5 为Application对象设置事件 91
7.5.1 Application对象事件概述 91
7.5.2 利用Application对象的事件 92
7.5.3 在新建工作簿时自动执行程序 92
7.5.4 在激活任意工作簿窗口时执行程序 93
7.5.5 禁止打印打开的任何工作簿 93
第8章 操作Workbook对象 95
8.1 引用工作簿 96
8.1.1 引用打开的某个工作簿 96
8.1.2 引用当前的活动工作簿 97
8.1.3 引用当前宏代码运行的工作簿 97
8.1.4 引用新建的工作簿 97
8.1.5 引用有特定工作表的工作簿 98
8.2 获取工作簿的基本信息 98
8.2.1 获取所有打开的工作簿的名称和路径 98
8.2.2 判断工作簿是否已经被打开 99
8.2.3 判断工作簿是否已经被保存 99
8.2.4 获取工作簿上次保存的时间 100
8.2.5 获取宏代码运行的工作簿完整名称 100
8.2.6 获取宏代码运行的工作簿路径 101
8.2.7 获取宏代码运行的工作簿的
5.1.6 带扩展名的名称 101
8.2.8 获取宏代码运行的工作簿的基础名称 101
8.2.9 获取和设置工作簿的文档属性 101
8.3 新建、打开工作簿 102
8.3.1 在当前的Excel窗口中新建一个工作簿 102
8.3.2 重新启动Excel应用程序
5.1.6 并新建一个工作簿 102
8.3.3 打开指定的工作簿 103
8.3.4 以只读的方式打开工作簿 103
8.3.5 在不更新链接的情况下打开工作簿 103
8.3.6 打开有打开密码保护的工作簿 104
8.3.7 通过对话框打开工作簿 104
8.4 保存、关闭工作簿 104
8.4.1 保存工作簿但不关闭工作簿 104
8.4.2 另存工作簿 105
8.4.3 将工作簿指定密码保存 105
8.4.4 保存工作簿副本 105
8.4.5 关闭工作簿但不保存 106
8.4.6 关闭工作簿并保存所有更改 106
8.4.7 通过对话框指定名字和
5.1.6 保存位置并关闭工作簿 106
8.4.8 关闭所有打开的工作簿但不保存 106
8.4.9 关闭所有打开的工作簿并保存更改 107
8.4.10 关闭所有打开的工作簿并同时
8.4.10 关闭Microsoft Excel应用程序 107
8.5 为工作簿设置/取消保护密码 107
8.5.1 判断工作簿是否有保护 107
8.5.2 为工作簿指定保护密码 108
8.5.3 撤销工作簿的保护密码 108
8.6 自定义工作簿窗口 109
8.6.1 改变工作簿窗口的大小 109
8.6.2 拆分工作簿窗口并冻结窗格 109
8.6.3 取消工作簿窗口的拆分和冻结 110
8.6.4 隐藏和显示工作簿窗口 110
8.6.5 设定工作簿窗口的各种显示状态 110
8.6.6 重排工作簿窗口 111
8.6.7 设置工作簿的网格线格式 112
8.7 利用工作簿的事件操作工作簿 112
8.7.1 工作簿的事件 113
8.7.2 在打开工作簿时就运行程序 113
8.7.3 在关闭工作簿时就运行程序 113
8.7.4 在激活工作簿时就运行程序 114
8.7.5 在工作簿不是活动工作簿时就运行程序 114
8.7.6 在保存工作簿时就运行程序 115
8.7.7 在打印工作簿时就执行程序——
5.1.6 制作打印日志 115
8.7.8 在打印工作簿时就执行程序——
5.1.6 计算打印累计次数 116
8.7.9 在打印工作簿时就执行程序——
5.1.6 禁止打印当前工作簿 116
8.7.10 在打印工作簿时就执行程序——
5.1.6 禁止打印某个工作表 117
8.7.11 为工作簿内所有的工作表
8.7.11 指定相同的事件处理程序 117
8.7.12 禁止删除当前工作簿内的工作表 118
8.7.13 禁止移动或复制当前工作簿内的工作表 119
8.7.14 禁止对当前工作簿内的工作表重命名 120
8.7.15 禁止在当前工作簿内插入新工作表 121
8.7.16 为当前工作簿的所有工作表
8.7.16 设置相同的页眉和页脚 121
第9章 操作Worksheet对象 122
9.1 引用工作表 123
9.1.1 引用某个工作簿的某个工作表 123
9.1.2 引用某个工作簿中的活动工作表 124
9.1.3 引用当前活动工作簿中的活动工作表 124
9.1.4 引用当前宏代码运行的
5.1.6 工作簿中的某个工作表 125
9.1.5 引用新建的工作表 125
9.1.6 引用工作表名称中包含有
5.1.6 特定字符串的工作表 125
9.2 获取工作表的基本信息 126
9.2.1 获取工作表名称 126
9.2.2 获取工作簿内所有工作表的名称 126
9.2.3 判断某个表是否为普通工作表 127
9.2.4 判断指定名称的工作表是否存在 127
9.3 操作工作表 128
9.3.1 隐藏工作表并通过菜单取消隐藏 128
9.3.2 隐藏工作表但不能通过菜单取消隐藏 128
9.3.3 显示被隐藏的工作表 129
9.3.4 重命名工作表 129
9.3.5 新建工作表并重命名 130
9.3.6 在本工作簿内复制工作表 131
9.3.7 将本工作簿内的某工作表
5.1.6 复制到一个新工作簿中 131
9.3.8 将本工作簿内的某工作表
5.1.6 复制到另外一个打开的工作簿中 131
9.3.9 在本工作簿内移动工作表 132
9.3.10 将本工作簿内的某工作表
5.1.6 移动到一个新工作簿中 132
9.3.11 将本工作簿内的某工作表
5.1.6 移动到另外一个打开的工作簿中 132
9.3.12 删除工作表 133
9.3.13 保护工作表 133
9.3.14 撤销对工作表的保护 133
9.3.15 激活工作表 134
9.3.16 选择工作表 134
9.3.17 显示和隐藏指定工作表的行号和列标 134
9.3.18 禁止使用快捷菜单对工作表进行
5.1.6 插入/删除/重命名/移动或复制操作 135
9.4 利用工作表的事件操作工作表 135
9.4.1 工作表的事件 135
9.4.2 为工作表指定事件 136
9.4.3 在激活工作表时就运行程序 137
9.4.4 在工作表为非活动时就运行程序 137
9.4.5 在工作表的单元格数据发生
5.1.6 变化时就运行程序 138
9.4.6 在选择工作表单元格区域发生
5.1.6 变化时就运行程序 139
9.4.7 在双击左键时就运行程序 139
9.4.8 在单击右键时就运行程序 139
9.4.9 在对工作表进行计算时执行程序 140
第10章 操作Range对象 141
10.1 引用单元格和单元格区域 142
10.1.1 使用Range属性引用某个单元格 142
10.1.2 使用Range属性引用连续的单元格区域 142
10.1.3 使用Range属性引用
10.1.3 不连续的单元格区域 142
10.1.4 使用Range属性引用
10.1.3 不确定的某个单元格 143
10.1.5 使用Range属性引用
10.1.3 不确定的连续单元格区域 143
10.1.6 使用Range属性引用
10.1.3 不确定的不连续单元格区域 143
10.1.7 使用Range属性引用单列 144
10.1.8 使用Range属性引用连续的多列 144
10.1.9 使用Range属性引用不连续的多列 144
10.1.10 使用Range属性引用单行 145
10.1.11 使用Range属性引用连续的多行 145
10.1.12 使用Range属性引用不连续的多行 145
10.1.13 通过定义名称引用单元格区域 146
10.1.14 使用Cells属性引用某个单元格 146
10.1.15 使用Cells属性引用连续的单元格区域 146
10.1.16 利用Rows属性引用连续的整行 147
10.1.17 利用Rows属性引用不连续的整行 147
10.1.18 利用Columns属性引用连续的整列 148
10.1.19 利用Columns属性引用不连续的整列 148
10.1.20 引用工作表的全部单元格 148
10.1.21 引用活动单元格 148
10.1.22 使用UsedRange属性引用
10.1.3 已使用的单元格区域 149
10.1.23 引用被空白行和空白列
10.1.3 包围的单元格区域 149
10.1.24 利用Offset属性动态
10.1.3 引用某个单元格 149
10.1.25 利用Offset属性动态
10.1.3 引用连续的单元格区域 150
10.1.26 利用Resize属性引用
10.1.3 变化后的单元格区域 150
10.1.27 利用Union方法引用
10.1.3 多个非连续单元格区域 151
10.1.28 引用多个单元格区域的交叉区域 151
10.1.29 引用有计算公式的所有单元格 152
10.1.30 引用隐藏的行和列 153
10.1.31 引用指定单元格区域内的
10.1.3 所有空白单元格 153
10.1.32 引用指定单元格区域内的
10.1.3 所有设置有数据有效性的单元格 154
10.1.33 引用指定单元格区域内的
10.1.3 所有可见单元格 154
10.1.34 引用指定单元格区域内的
10.1.3 所有出现错误的单元格 155
10.1.35 引用指定单元格区域内
10.1.3 有批注的单元格 155
10.1.36 引用指定单元格区域内
10.1.3 所有设置有条件格式的单元格 156
10.2 获取单元格和单元格区域信息 156
10.2.1 获取单元格或单元格区域的地址 156
10.2.2 获取单元格的行号 156
10.2.3 获取单元格的列标字母 157
10.2.4 获取单元格区域的起始
10.2.4 行号和终止行号 157
10.2.5 获取单元格区域的起始列号和终止列号 158
10.2.6 利用End属性获取数据
10.1.3 区域的最后一行行号 158
10.2.7 利用End属性获取数据
10.1.3 区域的最前一行行号 158
10.2.8 利用End属性获取数据
10.1.3 区域的最后一列列号 158
10.2.9 利用End属性获取数据
10.1.3 区域的最前一列列号 158
10.2.10 判断单元格内是否输入了公式 159
10.2.11 判断单元格内是否输入了数组公式 159
10.2.12 获取单元格内的公式字符串 160
10.2.13 获取单元格的字体对象信息 160
10.2.14 获取单元格的内部对象信息 160
10.2.15 获取单元格的数据 161
10.3 设置单元格和单元格区域格式 161
10.3.1 设置单元格的字体属性 161
10.3.2 设置单元格的下划线 162
10.3.3 设置单元格字符串的一部分字符的格式 162
10.3.4 设置和删除单元格区域的边框 162
10.3.5 设置单元格的数字格式 163
10.3.6 设置单元格颜色和背景 164
10.3.7 设置单元格对齐方式 164
10.3.8 缩小单元格内容以全部显示 165
10.3.9 设置单元格的有效性规则 165
10.3.10 为单元格设置或删除超链接 166
10.3.11 为单元格添加和删除批注 167
10.3.12 为单元格区域定义和删除名称 167
10.3.13 根据单元格内容自动调整列宽和行高 168
10.3.14 设置单元格的行高和列宽 168
10.4 操作单元格和单元格区域 169
10.4.1 隐藏行和列 169
10.4.2 合并和取消合并单元格 170
10.4.3 删除单元格的全部信息 170
10.4.4 删除单元格的公式和值 170
10.4.5 删除单元格的格式 170
10.4.6 删除单元格的批注 170
10.4.7 插入单元格 170
10.4.8 插入整行和整列 171
10.4.9 每隔数行插入一个空行 171
10.4.10 删除单元格 172
10.4.11 删除整行和整列 172
10.4.12 删除工作表的全部单元格 173
10.4.13 删除工作表的全部空行 173
10.4.14 删除工作表的全部空列 173
10.4.15 移动单元格 174
10.4.16 复制单元格的全部信息 174
10.4.17 只复制单元格的值 175
10.4.18 只复制单元格的公式 176
10.4.19 只复制单元格的格式 176
10.4.20 只复制单元格的批注 176
10.4.21 只复制单元格的有效性设置 177
10.4.22 为不同的单元格区域
10.1.3 设置不同的保护密码 177
10.5 向单元格和单元格区域输入数据 178
10.5.1 向单元格输入数值 178
10.5.2 向单元格输入字符串 179
10.5.3 向单元格输入数字型字符串 179
10.5.4 向单元格输入公式 179
10.5.5 向单元格输入数组公式 179
10.5.6 向单元格输入日期 179
10.5.7 向单元格输入时间 180
10.5.8 向单元格输入分数 180
10.5.9 向单元格输入邮政编码 180
10.5.10 向单元格输入18位的身份证号码 181
10.5.11 快速输入行标题 181
10.5.12 快速输入列标题 181
10.5.13 快速向单元格区域输入相同的数据 181
10.5.14 快速向单元格区域输入序列数据 181
10.5.15 快速向单元格区域输入连续的日期 182
10.5.16 快速向单元格区域输入
10.1.3 具有固定日期间隔的日期 183
10.5.17 向单元格输入多行数据 183
10.5.18 向单元格输入特殊字符 183
10.5.19 快速向某些单元格输入
10.1.3 带小数点的数字 183
10.5.20 不激活工作表就向该工作表输入数据 184
10.5.21 同时为多个工作表的相同
10.1.3 单元格区域输入相同的数据 184
第11章 使用窗体 185
11.1 用户窗体概述 186
11.1.1 创建用户窗体 186
11.1.2 导出用户窗体 186
11.1.3 导入用户窗体 186
11.1.4 删除用户窗体 187
11.2 设置用户窗体属性 187
11.2.1 更改用户窗体名称 187
11.2.2 更改窗体的标题文字 188
11.2.3 为窗体添加背景图片 188
11.2.4 删除窗体上的背景图片 190
11.2.5 改变窗体的大小 191
11.2.6 设置窗体背景颜色 191
11.2.7 设置窗体外观 192
11.3 加载和卸载用户窗体 194
11.3.1 加载并显示窗体 194
11.3.2 加载但不显示窗体 194
11.3.3 隐藏窗体 194
11.3.4 卸载窗体 194
11.4 利用事件控制用户窗体 195
11.4.1 窗体的常用事件 195
11.4.2 为窗体指定事件的方法 195
11.4.3 在装载窗体时就执行程序 196
11.4.4 在激活窗体时就执行程序 196
11.4.5 在单击时就执行程序 197
11.4.6 禁止使用窗体右上角的
10.1.3 X按钮关闭窗体 197
11.5 用户窗体的高级使用技巧 197
11.5.1 以无模式状态显示窗体 197
11.5.2 能够同时显示并能操作多个窗体 198
11.5.3 将窗体显示在窗口的指定位置 198
11.5.4 使窗体自动布满整个屏幕 199
11.5.5 隐藏/显示用户窗体的X按钮 199
11.5.6 将窗体的X按钮设置为有效和无效 200
11.5.7 为窗体添加最大化和最小化按钮 201
11.5.8 在启动工作簿时仅显示窗体,
10.1.3 而不显示Excel界面 203
11.5.9 设计有上下滚动字幕的窗体 203
11.5.10 设计有左右滚动字幕的窗体 204
11.5.11 在激活窗体时就播放音乐 205
11.5.12 运行时创建窗体和控件
10.1.3 并为其设计事件程序代码 206
第12章 使用控件 210
12.1 控件概述 211
12.1.1 为控件工具箱添加或删除控件 211
12.1.2 在窗体上插入控件 212
12.1.3 对齐窗体上的控件 212
12.1.4 统一设置多个控件的高度和
10.1.3 宽度及其他共有属性 212
12.1.5 设置控件的Tab键顺序 213
12.1.6 为控件设置默认属性值 214
12.1.7 设置控件的前景色和背景色 214
12.1.8 设置控件的焦点 214
12.1.9 为控件添加图片和删除图片 214
12.1.10 引用窗体上的某个控件 215
12.1.11 引用窗体上的某一类控件 215
12.1.12 引用窗体上的全部控件 216
12.1.13 获取窗体上所有控件的名称和类型 216
12.1.14 引用窗体上的某些控件 217
12.1.15 获取控件的有关信息 217
12.1.16 显示和隐藏控件 218
12.1.17 将控件变为不可操作和可操作 218
12.1.18 当鼠标停留在控件上面时
10.1.3 显示提示信息 219
12.1.19 当鼠标停留在控件上面时
10.1.3 改变鼠标指针类型 219
12.1.20 当鼠标停留在控件上面时
10.1.3 改变鼠标的图像 220
12.1.21 当鼠标停留在控件上面时改变
10.1.3 控件颜色,离开时恢复默认颜色 220
12.2 标签 221
12.2.1 设置标签的标题文字 221
12.2.2 设置标签标题文字的对齐方式 221
12.2.3 设置标签是否能够自动调整
10.1.3 大小以显示所有内容 222
12.2.4 设置标签的背景样式 222
12.2.5 设置标签的前景色和背景色 222
12.2.6 设置标签的边框和边框外观 222
12.2.7 利用标签显示运行过程及结果:
10.1.3 制作进度条 223
12.2.8 当单击标签时就执行程序 224
12.3 文本框 224
12.3.1 获取文本框的数据 224
12.3.2 将文本框的数字字符串转换为数字 225
12.3.3 将文本框的数字字符串转换为日期 225
12.3.4 向文本框中输入数据 225
12.3.5 设置文本框内字符的对齐方式 225
12.3.6 设置文本框内字符的显示格式 225
12.3.7 限制文本框内输入的字符长度 226
12.3.8 限制文本框内的输入数据 226
12.3.9 不显示输入到文本框的内容 227
12.3.10 将文本框设置为自动换行 227
12.3.11 使文本框内字符在任意字符后换行 228
12.3.12 显示和隐藏文本框的水平
10.1.3 滚动条和垂直滚动条 228
12.3.13 设置文本框为必须输入状态 229
12.3.14 限制只能在文本框中输入负号、
10.1.3 数字和小数点 229
12.3.15 限制只能在文本框中输入字母 229
12.3.16 当修改文本框中内容时就执行程序 230
12.3.17 当文本框数据变更后就执行程序 230
12.3.18 在文本框中输入数据后就朗读出来 230
12.3.19 在文本框获得焦点时改变背景色 231
12.4 命令按钮 231
12.4.1 更改命令按钮的标题文字 231
12.4.2 将命令按钮设置为默认按钮 231
12.4.3 将命令按钮设置为取消按钮 231
12.4.4 在单击按钮时就执行程序 231
12.4.5 在单击按钮时就朗读出提示信息 232
12.5 复选框 232
12.5.1 设置复选框的标题文字及对齐方式 232
12.5.2 判断复选框是否被选中 233
12.5.3 在运行中选择或取消复选框 233
12.6 选项按钮 233
12.6.1 设置选项按钮的标题文字及对齐方式 234
12.6.2 判断选项按钮是否被选中 234
12.6.3 在运行中选择或取消选项按钮 234
12.6.4 能够同时选择两个以上的选项按钮 234
12.7 框架 235
12.7.1 设置框架的标题文字 235
12.7.2 设置框架外观 235
12.7.3 将框架设计为两条水平平行线或
10.1.3 一条水平直线 235
12.7.4 将框架设计为两条垂直平行线或
10.1.3 一条垂直直线 236
12.7.5 获取框架内的所有控件名称及其值 236
12.8 复合框 236
12.8.1 利用AddItem方法为复合框
10.1.3 列表添加项目 236
12.8.2 利用RowSource属性为复合框
10.1.3 列表添加项目 237
12.8.3 利用List属性为复合框列表添加项目 238
12.8.4 利用Column属性为复合框
10.1.3 列表添加项目 238
12.8.5 利用Value属性获取复合框的
10.1.3 某条项目值 238
12.8.6 利用List属性获取复合框的
10.1.3 某条项目值 239
12.8.7 利用Column属性获取复合框的
10.1.3 某条项目值 239
12.8.8 利用数组获取复合框的某条项目值 240
12.8.9 利用Clear方法删除复合框的全部项目 240
12.8.10 利用RowSource属性删除
10.1.3 复合框的全部项目 240
12.8.11 删除复合框的某条项目 241
12.8.12 设置复合框的显示类型和行为 241
12.8.13 取消复合框项目的选择 242
12.8.14 将复合框设置为必须选择或
10.1.3 必须输入状态 242
12.8.15 在复合框的值发生改变时就执行程序 242
12.9 列表框 243
12.9.1 利用AddItem方法为列表框
10.1.3 列表添加项目 243
12.9.2 利用RowSource属性为列表框
10.1.3 列表添加项目 243
12.9.3 利用List属性为列表框列表添加项目 244
12.9.4 利用Column属性为列表框
10.1.3 列表添加项目 244
12.9.5 利用Value属性获取列表框的
10.1.3 某条项目值 245
12.9.6 利用List属性获取列表框的
10.1.3 某条项目值 245
12.9.7 利用Column属性获取列表框的
10.1.3 某条项目值 246
12.9.8 利用Clear方法删除列表框的全部项目 246
12.9.9 利用RowSource属性删除
10.1.3 列表框的全部项目 247
12.9.10 删除列表框的某条项目 247
12.9.11 设置列表框的单选和多选状态 247
12.9.12 取消列表框项目的选择 248
12.9.13 在列表框的值发生改变时就执行程序 248
12.9.14 在单击列表框时就执行程序 248
12.10 图像控件 248
12.10.1 使用图像控件显示图片 249
12.10.2 设置图片的显示效果 250
12.10.3 利用工作表数据为图像控件添加图片 250
12.11 其他标准控件 250
12.11.1 实现旋转按钮与文本框的联动 250
12.11.2 使用滚动条 251
12.11.3 使用多页控件 253
12.11.4 使用切换按钮 254
12.11.5 利用标签条(TabStrip控件)
10.1.3 动态显示数据 255
12.12 非标准控件 256
12.12.1 利用进度条控件显示运行进程 256
12.12.2 利用ListView控件在窗体上制作报表 257
12.12.3 利用TreeView控件在窗体上
10.1.3 显示多维数据 259
12.12.4 利用Spreadsheet控件在
10.1.3 窗体上编辑数据 260
12.12.5 利用ChartSpace控件在
10.1.3 窗体上绘制动态图表 262
12.12.6 使用日历控件(Calendar) 265
12.12.7 使用获取日期控件(DTPicker) 266
12.13 在工作表中使用ActiveX控件 267
12.12.1 引用工作表中的ActiveX控件 267
12.12.2 自动在工作表中插入ActiveX控件 267
12.12.3 在工作表中自动插入
10.1.3 ActiveX控件对象并重命名 268
12.12.4 设置ActiveX控件的标题
10.1.3 文字及字体属性 269
12.12.5 设置ActiveX控件的前景色和背景色 270
12.12.6 设置ActiveX控件的大小和位置 270
12.12.7 获取ActiveX控件的值 270
12.14 控件的高级使用技巧 271
12.14.1 每单击一次按钮就执行不同的操作 271
12.14.2 为控件指定多个事件 272
12.14.3 为控件创建类集 273
第13章 操作菜单和工具栏 275
13.1 获取Excel菜单栏信息 276
13.1.1 获取Excel菜单栏信息 276
13.1.2 获取Excel【文件】菜单项信息 277
13.1.3 获取Excel【编辑】菜单项信息 278
13.1.4 获取Excel【视图】菜单项信息 279
13.1.5 获取Excel【插入】菜单项信息 280
13.1.6 获取Excel【格式】菜单项信息 281
13.1.7 获取Excel【工具】菜单项信息 281
13.1.8 获取Excel【数据】菜单项信息 282
13.1.9 获取Excel【窗口】菜单项信息 283
13.2 获取Excel工具栏信息 284
13.2.1 获取Excel所有工具栏信息清单 284
13.2.2 获取Excel标准工具栏信息 285
13.2.3 获取Excel格式工具栏信息 286
13.2.4 获取Excel命令按钮的Icon和FaceID 287
13.3 更改现有的Excel菜单和工具栏 288
13.3.1 禁止使用Excel菜单栏的菜单项 288
13.3.2 删除和恢复Excel菜单栏 289
13.3.3 隐藏和恢复Excel工具栏 289
13.3.4 在现有的菜单中添加或删除
10.1.3 自定义菜单命令项 290
13.3.5 在Excel菜单栏中创建和删除
10.1.3 自定义子菜单 291
13.3.6 改变Excel命令按钮的Icon 292
13.3.7 在菜单栏或工具栏中添加
10.1.3 自定义命令按钮 293
13.3.8 在Excel的工具栏中创建
10.1.3 一个自定义组合框命令按钮 294
13.3.9 在Excel的工具栏中创建
10.1.3 一个自定义下拉命令按钮 295
13.3.10 禁止使用Excel的菜单命令 296
13.4 创建自定义主菜单栏 297
13.5 创建和删除自定义工具栏 299
13.5.1 创建和删除自定义工具栏 299
13.5.2 创建和删除由内置命令
10.1.3 组成的自定义工具栏 301
13.5.3 为每个工作表设计不同的
10.1.3 自定义工具栏 302
13.6 创建自定义快捷菜单 304
13.6.1 获取Excel的全部快捷菜单信息 304
13.6.2 为快捷菜单添加或删除菜单项 305
13.6.3 为快捷菜单添加和删除内置命令 306
13.6.4 为某些单元格区域创建
10.1.3 一个全新的快捷菜单 307
13.6.5 使Excel的快捷菜单失效 308
13.6.6 在工作表的任意位置快速
10.1.3 显示快捷菜单 308
13.6.7 为窗体控件创建自定义快捷菜单 308
第14章 利用VBA处理工作表数据 310
14.1 利用VBA常规方法处理工作表数据 311
14.1.1 查询工作表中符合条件的
10.1.3 数值和公式字符串 311
14.1.2 查询数值及公式结果 312
14.1.3 进行模糊查询 315
14.1.4 从多个工作表或工作簿中查询数据 315
14.1.5 删除数据区域内的所有空白行 316
14.1.6 获取存在于两个工作表中
10.1.3 相同数据的行数据 316
14.1.7 获取只存在于某个工作表中的行数据 317
14.1.8 从一个工作表中删除另一个
10.1.3 工作表中存在的行数据 318
14.1.9 数据排序 318
14.1.10 数据筛选 321
14.2 利用ADO+SQL处理工作表数据 323
14.2.1 利用ADO+SQL进行复杂
10.1.3 条件下的查询 324
14.2.2 从工作簿的全部工作表中
10.1.3 查询获取数据 325
14.2.3 查询其他工作簿的数据 326
14.2.4 对工作表数据进行复杂排序 327
第15章 操作文件和文件夹 329
15.1 操作文件夹 330
15.1.1 判断文件夹是否存在 330
15.1.2 获取文件夹的属性 330
15.1.3 创建文件夹 331
15.1.4 移动文件夹 331
15.1.5 更改文件夹名称 332
15.1.6 删除文件夹 332
15.2 操作文件 333
15.2.1 判断文件是否存在 333
15.2.2 获取文件的信息 333
15.2.3 复制文件 334
15.2.4 移动文件 334
15.2.5 删除文件 335
15.2.6 更改文件名 335
15.2.7 批量更改文件名 335
15.2.8 批量删除文件 336
15.2.9 利用Application对象的
10.1.3 FileSearch属性查找文件 336
15.3 利用文件对象模型操作文件 337
15.3.1 引用文件对象模型 337
15.3.2 FileSystemObject对象 338
15.3.3 检查文件是否存在 338
15.3.4 复制文件 339
15.3.5 删除文件 339
第16章 保护您的劳动成果 341
16.1 为VBA工程设置密码 342
16.2 防止别人通过强制中断
16.2 方式查看VBA代码 342
16.3 在禁用宏时就自动关闭工作簿 342
16.4 限制工作簿的使用时间,
16.2 超过时间就自我删除 343
16.5 限制工作簿的使用次数,
16.2 超过次数就自我删除 344
16.6 设置工作簿的登录窗口 345
实例目录
第4章 VBA基础语法
【例4-1】 自定义数据类型。 32
【例4-2】 将数组的缺省下界设置为1。 37
【例4-1】 自定义数据类型。 32
【例4-2】 将数组的缺省下界设置为1。 37
【例4-3】 设计一个九九乘法表。 40
【例4-4】 获取当前工作簿中的所有工作表名。 40
【例4-5】 判断工作表是否存在。 41
【例4-6】 Do...Loop循环语句的第一种结构使用举例。 41
【例4-7】 Do...Loop循环语句的第二种结构使用举例。 42
【例4-8】 Do...Loop循环语句的第三种结构使用举例。 42
【例4-9】 Do...Loop循环语句的第四种结构使用举例。 42
【例4-10】 退出Do循环举例。 43
【例4-11】 While ... Wend循环语句使用举例。 43
【例4-12】 循环数组中的所有元素。 43
【例4-13】 循环对象集合中的所有对象。 44
【例4-14】 单行格式的If条件语句应用举例。 45
【例4-15】 单行格式的If条件语句应用举例。 45
【例4-16】 If… Then格式的条件语句应用举例。 45
【例4-17】 If…Then…Else格式的条件语句应用举例。 46
【例4-18】 If…Then…ElseIf…Then格式的条件语句应用举例。 46
【例4-19】 Select ... Case语句使用举例(具体常数)。 47
【例4-20】 Select ... Case语句使用举例(连续的数据范围)。 47
【例4-21】 Select ... Case语句使用举例(Is关系表达式)。 48
【例4-22】 将多个语句写在一行上。 48
【例4-23】 With语句的使用举例。 49
第5章 使用工作簿函数和VBA函数 50
【例5-1】 使用Application对象的WorksheetFunction属性调用工作簿函数。 51
【例5-2】 使用字符串的处理方式向单元格输入工作簿函数。 52
【例5-3】 使用字符串的处理方式向单元格输入数组公式。 52
【例5-4】 采用定义Range对象变量的方法向单元格输入数组公式。 52
【例5-5】 利用Range对象的Formula属性获取单元格中的公式表达式。 53
【例5-6】 利用Range对象的FormulaArray属性,判断指定单元格区域是否为数组公式单元格区域的一部分。 53
【例5-7】 使用Range集合的SpecialCells方法删除工作表中的所有数据(仅留下所有的公式)。 53
【例5-8】 日期和时间函数使用举例。 54
【例5-9】 工作簿日期函数与VBA日期函数的比较。 55
【例5-10】 字符串函数使用举例。 55
【例5-11】 VBA财务函数使用举例。 56
【例5-12】 VBA数学函数使用举例。 56
【例5-13】 VBA检查函数使用举例。 56
【例5-14】 IIf函数使用举例。 57
【例5-15】 Choose函数使用举例。 57
【例5-16】 Switch函数使用举例。 58
【例5-17】 ARRAY函数使用举例。 58
【例5-18】 利用ARRAY函数快速输入行标题和列标题。 58
【例5-19】 FORMAT格式函数使用举例。 59
【例5-20】 输入函数InputBox使用举例——输入日期。 59
【例5-21】 输入函数InputBox使用举例——在信息输入框中显示帮助按钮。 59
【例5-22】 InputBox方法使用举例——输入数字。 61
【例5-23】 InputBox方法使用举例——输入文本。 61
【例5-24】 InputBox方法使用举例——输入数字和文本。 61
【例5-25】 输出函数MsgBox应用举例。 63
第6章 过程和自定义函数 64
【例6-1】 定义模块级变量并获取该变量的值。 69
【例6-2】 创建自定义函数。 71
【例6-3】 设计参数可选的自定义函数。 71
【例6-4】 为自定义函数的可选参数指定默认值——个人所得税自定义函数。 72
【例6-5】 设计参数个数不定的自定义函数。 73
【例6-6】 设计返回数组的自定义函数。 73
【例6-7】 为自定义函数添加提示信息。 73
【例6-8】 将自定义函数归类。 74
【例6-9】 在过程中调用自定义函数。 75
第7章 操作Application对象 77
【例7-1】 获取Excel版本。 78
【例7-2】 获取Excel的安装路径。 78
【例7-3】 获取当前用户名。 78
【例7-4】 获取启动Excel的路径。 78
【例7-5】 获取打开Excel文件时的默认路径。 79
【例7-6】 获取当前打印机的名称。 79
【例7-7】 获取Excel应用程序的标题文字。 79
【例7-8】 获取“自动恢复”临时文件的路径。 79
【例7-9】 修改Excel应用程序的标题文字。 80
【例7-10】 删除Excel应用程序的标题文字。 80
【例7-11】 恢复Excel应用程序的默认标题文字。 80
【例7-12】 删除/恢复Excel菜单项。 81
【例7-13】 使Excel菜单项或其命令不可操作。 81
【例7-14】 使Excel菜单项或其命令不可操作。 81
【例7-15】 使Excel的工具栏不可操作。 82
【例7-16】 使Excel的工具栏上的命令按钮不可操作。 82
【例7-17】 隐藏和显示编辑栏。 83
【例7-18】 隐藏和显示标准工具栏。 83
【例7-19】 隐藏和显示格式工具栏。 84
【例7-20】 隐藏和显示状态栏。 84
【例7-21】 在状态栏中显示信息。 84
【例7-22】 将Excel全屏显示。 85
【例7-23】 隐藏Excel本身。 85
【例7-24】 改变鼠标指针形状。 85
【例7-25】 设置新工作簿中的工作表个数。 86
【例7-26】 设置工作簿的默认路径。 86
【例7-27】 设置保存自动恢复文件的时间间隔和保存位置。 87
【例7-28】 改变手动和自动计算方式。 87
【例7-29】 不显示警告信息框。 88
【例7-30】 显示Excel的内置对话框。 88
【例7-31】 将厘米转换为磅。 88
【例7-32】 使程序在指定的时间开始运行。 89
【例7-33】 定期运行程序以分析数据。 89
【例7-34】 使程序每隔一段时间就自动运行程序。 90
【例7-35】 使用OnTime方法禁止改变Excel本身窗口大小。 90
【例7-36】 取消程序的运行计划。 91
【例7-37】 Application对象的NewWorkbook事件使用举例。 93
【例7-38】 Application对象的SheetActivate事件使用举例。 93
【例7-39】 Application对象的WorkbookBeforePrint事件使用举例。 93
第8章 操作Workbook对象 95
【例8-1】 通过索引编号引用工作簿。 96
【例8-2】 通过名称引用工作簿。 96
【例8-3】 引用当前的活动工作簿。 97
【例8-4】 引用当前宏代码运行的工作簿。 97
【例8-5】 引用新建的工作簿。 97
【例8-6】 引用有特定工作表的工作簿。 98
【例8-7】 获取所有打开的工作簿的名称和路径。 98
【例8-8】 利用循环方法判断工作簿是否已经被打开。 99
【例8-9】 利用错误处理方法判断工作簿是否已经被打开。 99
【例8-10】 利用Path属性判断工作簿是否已经被保存。 100
【例8-11】 利用Saved属性判断工作簿的更改是否已经被保存过。 100
【例8-12】 获取指定工作簿的上次保存时间。 100
【例8-13】 获取宏代码运行的工作簿完整名称。 101
【例8-14】 获取宏代码运行的工作簿路径。 101
【例8-15】 获取宏代码运行的工作簿的带扩展名的名称。 101
【例8-16】 获取宏代码运行的工作簿的基础名称。 101
【例8-17】 获取和设置工作簿的文档属性。 101
【例8-18】 新建工作簿。 102
【例8-19】 重新启动Excel应用程序并新建一个工作簿。 103
【例8-20】 利用Open方法并通过指定文件名的方式打开工作簿。 103
【例8-21】 以只读的方式打开工作簿。 103
【例8-22】 在不更新链接的情况下打开工作簿。 103
【例8-23】 利用Open方法打开有打开密码保护的工作簿。 104
【例8-24】 通过对话框打开工作簿。 104
【例8-25】 保存工作簿但不关闭工作簿。 104
【例8-26】 另存工作簿。 105
【例8-27】 将工作簿指定密码保存。 105
【例8-28】 保存工作簿副本。 105
【例8-29】 关闭工作簿但不保存。 106
【例8-30】 关闭工作簿并保存所有更改。 106
【例8-31】 通过对话框指定名字和保存位置并关闭工作簿。 106
【例8-32】 关闭所有打开的工作簿但不保存。 107
【例8-33】 关闭所有打开的工作簿并保存更改。 107
【例8-34】 关闭所有打开的工作簿及Excel应用程序。 107
【例8-35】 判断工作簿是否有保护。 108
【例8-36】 为工作簿指定保护密码。 108
【例8-37】 撤销工作簿的保护密码。 108
【例8-38】 保护工作簿/撤销工作簿保护。 109
【例8-39】 改变工作簿窗口的大小。 109
【例8-40】 拆分工作簿窗口并冻结窗格。 110
【例8-41】 取消工作簿窗口的冻结窗格。 110
【例8-42】 隐藏和显示工作簿窗口。 110
【例8-43】 设定工作簿窗口的各种显示状态。 111
【例8-44】 重排工作簿窗口。 112
【例8-45】 设置工作簿的网格线格式。 112
【例8-46】 Open事件应用举例。 113
【例8-47】 BeforeClose事件应用举例。 113
【例8-48】 Activate事件应用举例。 114
【例8-49】 Deactivate事件应用举例。 114
【例8-50】 BeforeSave事件应用举例。 115
【例8-51】 BeforePrint事件应用举例:制作打印日志。 115
【例8-52】 BeforePrint事件应用举例:制作打印日志。 115
【例8-53】 BeforePrint事件应用举例:计算打印累计次数。 116
【例8-54】 BeforePrint事件应用举例:禁止打印当前工作簿。 116
【例8-55】 BeforePrint事件应用举例:禁止打印某个工作表。 117
【例8-56】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 117
【例8-57】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 117
【例8-58】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 118
【例8-59】 禁止删除当前工作簿内的指定工作表。 118
【例8-60】 禁止删除当前工作簿内的所有工作表。 118
【例8-61】 禁止移动或复制当前工作簿内的指定工作表。 119
【例8-62】 禁止移动或复制当前工作簿内的所有工作表。 119
【例8-63】 禁止重命名当前工作簿内的指定工作表。 120
【例8-64】 禁止重命名当前工作簿内的所有工作表。 120
【例8-65】 禁止在当前工作簿内插入新工作表。 121
【例8-66】 为当前工作簿的所有工作表设置相同的页眉。 121
第9章 操作Worksheet对象 122
【例9-1】 通过索引引用工作表。 123
【例9-2】 通过名称引用工作表。 123
【例9-3】 通过Sheets集合引用工作表。 124
【例9-4】 引用指定工作簿中的活动工作表。 124
【例9-5】 引用当前活动工作簿中的活动工作表。 124
【例9-6】 引用当前宏代码运行的工作簿中的某个工作表。 125
【例9-7】 引用新建的工作表。 125
【例9-8】 引用工作表名称中包含有特定字符串的工作表。 125
【例9-9】 通过循环Worksheets集合获取工作簿内所有工作表的名称。 126
【例9-10】 通过循环Sheets集合获取工作簿内所有工作表的名称。 126
【例9-11】 判断某个表是否为普通工作表。 127
【例9-12】 判断指定名称的工作表是否存在。 127
【例9-13】 判断指定名称的工作表是否存在。 128
【例9-14】 隐藏工作表并通过菜单取消隐藏。 128
【例9-15】 隐藏工作表但不能通过菜单取消隐藏。 128
【例9-16】 显示被隐藏的工作表。 129
【例9-17】 重命名工作表。 129
【例9-18】 新建一个工作表并重命名。 130
【例9-19】 新建多个工作表并重命名。 130
【例9-20】 在本工作簿内复制工作表。 131
【例9-21】 将本工作簿内的指定工作表复制到一个新工作簿中。 131
【例9-22】 将本工作簿内的某工作表复制到另外一个打开的工作簿中。 131
【例9-23】 在本工作簿内移动指定的工作表。 132
【例9-24】 将本工作簿内的指定工作表移动到一个新工作簿中。 132
【例9-25】 将本工作簿内的某工作表移动到另外一个打开的工作簿中。 132
【例9-26】 删除工作表。 133
【例9-27】 保护工作表。 133
【例9-28】 撤销对工作表的保护。 134
【例9-29】 显示和隐藏指定工作表的行号和列标。 134
【例9-30】 Activate事件和Deactivate事件应用举例。 137
【例9-31】 Change事件应用举例。 138
【例9-32】 Change事件应用举例。 138
【例9-33】 Change事件应用举例。 138
【例9-34】 SelectionChange事件应用举例。 139
【例9-35】 BeforeDoubleClick事件应用举例。 139
【例9-36】 BeforeRightClick事件应用举例。 139
【例9-37】 Calculate事件应用举例。 140
第10章 操作Range对象 141
【例10-1】 使用Range属性引用某个单元格。 142
【例10-2】 使用Range属性引用连续的单元格区域。 142
【例10-3】 使用Range属性引用不连续的单元格区域。 142
【例10-4】 采用字符串方式使用Range属性引用不确定的某个单元格。 143
【例10-5】 采用字符串方式使用Range属性引用不确定的连续单元格区域。 143
【例10-6】 采用字符串方式使用Range属性引用不确定的不连续单元格区域。 144
【例10-7】 使用Range属性引用单列。 144
【例10-8】 使用Range属性引用连续的多列。 144
【例10-9】 使用Range属性引用不连续的多列。 145
【例10-10】 使用Range属性引用单行。 145
【例10-11】 使用Range属性引用连续的多行。 145
【例10-12】 使用Range属性引用不连续的多行。 145
【例10-13】 通过定义名称引用单个名称定义的单元格区域。 146
【例10-14】 通过定义名称引用多个名称定义的单元格区域。 146
【例10-15】 使用Cells属性引用某个单元格。 146
【例10-16】 使用Cells属性引用连续的单元格区域。 147
【例10-17】 利用Rows属性引用连续的整行。 147
【例10-18】 利用Rows属性引用连续的整行:隔行设置单元格颜色。 147
【例10-19】 利用Rows属性引用不连续的整行。 147
【例10-20】 利用Columns属性引用连续的整列。 148
【例10-21】 利用Columns属性引用不连续的整列。 148
【例10-22】 选择当前工作表的全部单元格。 148
【例10-23】 显示活动单元格的地址。 148
【例10-24】 使用UsedRange属性引用已使用的单元格区域。 149
【例10-25】 引用被空白行和空白列包围的单元格区域。 149
【例10-26】 利用Offset属性动态引用某个单元格。 150
【例10-27】 利用Offset属性动态引用连续的单元格区域。 150
【例10-28】 利用Resize属性引用变化后的单元格区域。 150
【例10-29】 利用Union方法引用多个非连续单元格区域。 151
【例10-30】 引用多个单元格区域的交叉区域。 151
【例10-31】 引用已用单元格区域中有计算公式的所有单元格。 152
【例10-32】 引用工作表中所有计算公式的单元格。 153
【例10-33】 在隐藏的行或列中输入数据。 153
【例10-34】 引用指定单元格区域内的所有空白单元格。 153
【例10-35】 引用指定单元格区域内的所有设置有数据有效性的单元格。 154
【例10-36】 引用指定单元格区域内的所有可见单元格。 154
【例10-37】 引用指定单元格区域内的所有出现错误的单元格。 155
【例10-38】 引用指定单元格区域内有批注的单元格。 155
【例10-39】 引用指定单元格区域内所有设置有条件格式的单元格。 156
【例10-40】 获取已用单元格区域的地址。 156
【例10-41】 使用Address获取单元格地址的列标字母。 157
【例10-42】 使用Chr函数获取指定数字对应的列标字母。 157
【例10-43】 获取单元格区域的起始行号和终止行号。 157
【例10-44】 获取单元格区域的起始列号和终止列号。 158
【例10-45】 利用HasFormula属性判断给定单元格内是否输入了公式。 159
【例10-46】 利用字符串处理的方法判断单元格内是否输入了公式。 159
【例10-47】 判断指定单元格内是否输入了数组公式。 159
【例10-48】 获取单元格内的公式字符串。 160
【例10-49】 获取单元格的字体对象信息。 160
【例10-50】 获取单元格的内部对象信息。 161
【例10-51】 设置单元格的字体属性。 161
【例10-52】 设置单元格区域外边框。 162
【例10-53】 设置单元格区域的全部边框。 163
【例10-54】 删除单元格区域的全部边框。 163
【例10-55】 设置指定单元格的颜色和背景。 164
【例10-56】 设置单元格的有效性规则。 165
【例10-57】 为单元格设置或删除超链接。 167
【例10-58】 为单元格添加和删除批注。 167
【例10-59】 为单元格区域定义和删除名称。 168
【例10-60】 自动调整指定单元格区域的列宽和行高。 168
【例10-61】 设置指定单元格的行高和列宽。 168
【例10-62】 插入单元格。 171
【例10-63】 插入整行和整列。 171
【例10-64】 每隔3行插入1个空行。 171
【例10-65】 删除单元格。 172
【例10-66】 删除整行和整列。 172
【例10-67】 删除数据区域的所有空行。 173
【例10-68】 删除数据区域的全部空列。 173
【例10-69】 移动单元格。 174
【例10-70】 复制单元格的全部信息。 174
【例10-71】 只复制单元格的值。 175
【例10-72】 只复制单元格公式。 176
【例10-73】 只复制单元格的格式。 176
【例10-74】 只复制单元格批注。 176
【例10-75】 只复制单元格的有效性设置。 177
【例10-76】 为不同的单元格区域设置不同的保护密码。 177
【例10-77】 删除设置的分区保护。 178
【例10-78】 向单元格输入数值。 178
【例10-79】 向单元格输入字符串。 179
【例10-80】 向单元格输入数组公式。 179
【例10-81】 向单元格输入日期。 179
【例10-82】 向单元格输入时间。 180
【例10-83】 向单元格输入分数。 180
【例10-84】 向单元格输入邮政编码的两种方法。 181
【例10-85】 向指定的单元格区域输入连续值。 182
【例10-86】 快速向单元格区域输入连续的日期。 182
【例10-87】 快速向单元格区域输入具有固定日期间隔的日期。 183
【例10-88】 快速向某些单元格输入带小数点的数字。 183
【例10-89】 不激活工作表就向该工作表输入数据。 184
【例10-90】 同时为多个工作表的相同单元格区域输入相同的数据。 184
第11章 使用窗体 185
【例11-1】 更改窗体的标题文字。 188
【例11-2】 在运行程序时为窗体添加图片。 189
【例11-3】 改变窗体的大小。 191
【例11-4】 设置窗体外观。 193
【例11-5】 在装载窗体时就执行程序。 196
【例11-6】 在激活窗体时就执行程序。 196
【例11-7】 在单击时就执行程序。 197
【例11-8】 禁止使用窗体右上角的X按钮关闭窗体。 197
【例11-9】 将窗体显示在窗口的指定位置。 198
【例11-10】 利用Left属性和Top属性将窗体显示在窗口的指定位置。 199
【例11-11】 使窗体自动布满整个屏幕。 199
【例11-12】 隐藏和显示用户窗体的X按钮。 200
【例11-13】 将用户窗体的X按钮设置为有效和无效。 201
【例11-14】 为用户窗体添加最大化和最小化按钮。 202
【例11-15】 在启动工作簿时仅显示窗体,而不显示Excel界面。 203
【例11-16】 设计有上下滚动字幕的窗体。 203
【例11-17】 设计有左右滚动字幕的窗体。 204
【例11-18】 在激活窗体时就播放音乐。 205
【例11-19】 在窗体上插入Media Player控件来播放音乐。 205
【例11-20】 运行时创建窗体和控件并为其设计事件程序代码。 207
第12章 使用控件 210
【例12-1】 在程序运行时设置控件的共有属性。 213
【例12-2】 引用窗体上的某一类控件。 216
【例12-3】 引用窗体上的全部控件。 216
【例12-4】 获取窗体上所有控件的名称和类型。 216
【例12-5】 使用数组函数引用窗体上的控件。 217
【例12-6】 获取控件的有关信息。 217
【例12-7】 显示和隐藏控件。 218
【例12-8】 利用Enabled属性设置控件的可操作性。 218
【例12-9】 利用Locked属性设置控件的可操作性。 219
【例12-10】 当鼠标停留在控件上面时显示提示信息。 219
【例12-11】 当鼠标停留在控件上面时改变鼠标指针类型。 219
【例12-12】 当鼠标停留在控件上面时改变鼠标的图像。 220
【例12-13】 当鼠标停留在控件上面时改变控件颜色,离开时恢复默认颜色。 221
【例12-14】 利用标签制作进度条。 223
【例12-15】 当单击标签时就执行程序。 224
【例12-16】 设置文本框内字符的显示格式。 226
【例12-17】 限制文本框内输入的字符长度。 226
【例12-18】 限制文本框内的输入数据。 226
【例12-19】 不显示输入到文本框的内容。 227
【例12-20】 将文本框设置为自动换行。 227
【例12-21】 使文本框内字符在任意字符后换行。 228
【例12-22】 设置文本框为必须输入状态。 229
【例12-23】 将文本框限制为只能输入负号、数字和小数点。 229
【例12-24】 限制只能在文本框中输入字母。 230
【例12-25】 当修改文本框中内容时就执行程序。 230
【例12-26】 当文本框数据变更后就执行程序。 230
【例12-27】 在文本框中输入数据后就朗读出来。 230
【例12-28】 在文本框获得焦点时改变背景色。 231
【例12-29】 在单击按钮时就执行程序。 232
【例12-30】 在单击按钮时就朗读出提示信息。 232
【例12-31】 设置复选框的标题文字及对齐方式。 233
【例12-32】 判断复选框是否被选中。 233
【例12-33】 设置选项按钮的标题文字及对齐方式。 234
【例12-34】 能够同时选择两个以上的选项按钮。 234
【例12-35】 将框架设计为两条水平平行线或一条水平直线。 236
【例12-36】 将框架设计为两条垂直平行线或一条垂直直线。 236
【例12-37】 获取框架Frame1内的所有控件名称及其值。 236
【例12-38】 利用AddItem方法为复合框列表添加项目。 237
【例12-39】 利用RowSource属性为复合框ComboBox1添加项目。 237
【例12-40】 利用List属性为复合框设置项目。 238
【例12-41】 使用工作表中的数据,并利用List属性为复合框设置项目。 238
【例12-42】 利用Column属性为复合框列表添加项目。 238
【例12-43】 利用Value属性获取复合框的某条项目值。 239
【例12-44】 利用List属性获取复合框的某条项目值。 239
【例12-45】 利用Column属性获取复合框的某条项目值。 239
【例12-46】 利用数组获取复合框的某条项目值。 240
【例12-47】 利用RemoveItem方法将复合框内的某条项目删除。 241
【例12-48】 设置复合框的显示类型和行为。 241
【例12-49】 将复合框设置为必须选择或必须输入状态。 242
【例12-50】 在复合框的值发生改变时就执行程序。 242
【例12-51】 利用AddItem方法为列表框列表添加项目。 243
【例12-52】 利用RowSource属性为列表框ListBox1添加项目。 243
【例12-53】 利用List属性为列表框设置项目。 244
【例12-54】 利用Column属性为列表框列表添加项目。 245
【例12-55】 利用Value属性获取列表框的某条项目值。 245
【例12-56】 利用List属性获取列表框的某条项目值。 245
【例12-57】 利用Column属性获取列表框的某条项目值。 246
【例12-58】 利用Clear方法删除列表框的全部项目。 246
【例12-59】 利用RemoveItem方法将列表框内的某条项目删除。 247
【例12-60】 设置列表框为多选状态。 247
【例12-61】 在列表框的值发生改变时就执行程序。 248
【例12-62】 在单击列表框时就执行程序。 248
【例12-63】 使用图像控件显示图片。 249
【例12-64】 利用工作表数据为图像控件添加图片。 250
【例12-65】 实现旋转按钮与文本框的联动。 251
【例12-66】 实现滚动条与工作表滚动条的同步联动。 252
【例12-67】 利用滚动条进行颜色调整和配色。 252
【例12-68】 多页控件使用举例。 253
【例12-69】 切换按钮使用举例。 254
【例12-70】 利用标签条(TabStrip控件)动态显示数据。 255
【例12-71】 利用ProgressBar控件设置一个显示计算过程的进度条。 256
【例12-72】 利用ListView控件在窗体上制作报表。 257
【例12-73】 利用TreeView控件在窗体上显示多维数据。 259
【例12-74】 利用Spreadsheet控件在窗体上编辑数据。 261
【例12-75】 利用ChartSpace控件在窗体上绘制动态图表。 262
【例12-76】 利用ChartSpace控件在窗体上绘制动态图表。 263
【例12-77】 日历控件使用举例。 265
【例12-78】 DTPicker控件属性设置和事件使用练习。 266
【例12-79】 自动在工作表中插入ActiveX控件。 267
【例12-80】 在工作表中自动插入ActiveX控件对象并重命名。 268
【例12-81】 设置ActiveX控件的标题文字及字体属性。 269
【例12-82】 设置ActiveX控件的前景色和背景色。 270
【例12-83】 设置ActiveX控件的大小和位置。 270
【例12-84】 获取ActiveX控件的值。 271
【例12-85】 每单击一次按钮就执行不同的操作。 272
【例12-86】 为控件指定多个事件。 272
【例12-87】 将文本框类别化以控制输入数据。 273
第13章 操作菜单和工具栏 275
【例13-1】 获取Excel菜单栏信息。 276
【例13-2】 获取Excel【文件】菜单项信息。 277
【例13-3】 获取Excel【编辑】菜单项信息。 278
【例13-4】 获取Excel【视图】菜单项信息。 279
【例13-5】 获取Excel【插入】菜单项信息。 280
【例13-6】 获取Excel【格式】菜单项信息。 281
【例13-7】 获取Excel【工具】菜单项信息。 281
【例13-8】 获取Excel【数据】菜单项信息。 282
【例13-9】 获取Excel【窗口】菜单项信息。 283
【例13-10】 获取Excel所有工具栏信息清单。 284
【例13-11】 获取Excel标准工具栏信息。 285
【例13-12】 获取Excel格式工具栏信息。 286
【例13-13】 获取Excel命令按钮的Icon和FaceID。 287
【例13-14】 删除Excel菜单栏中的【帮助】子菜单。 289
【例13-15】 隐藏和恢复Excel的标准工具栏和
格式工具栏。 289
【例13-16】 在现有的菜单中添加或删除自定义菜单命令项。 290
【例13-17】 在Excel菜单栏中创建和删除自定义子菜单。 291
【例13-18】 改变Excel命令按钮的Icon。 292
【例13-19】 在菜单栏或工具栏中添加自定义命令按钮。 293
【例13-20】 在Excel的工具栏中创建一个自定义组合框命令按钮。 294
【例13-21】 在Excel的工具栏中创建一个自定义下拉命令按钮。 295
【例13-22】 创建自定义主菜单栏。 297
【例13-23】 创建和删除自定义工具栏。 299
【例13-24】 创建和删除由内置命令组成的自定义工具栏。 301
【例13-25】 为每个工作表设计不同的自定义工具栏。 302
【例13-26】 获取Excel的全部快捷菜单信息。 304
【例13-27】 为快捷菜单添加或删除菜单项。 305
【例13-28】 为快捷菜单添加和删除内置命令。 306
【例13-29】 为某些单元格区域创建一个全新的快捷菜单。 307
【例13-30】 为窗体控件创建自定义快捷菜单。 308
第14章 利用VBA处理工作表数据 310
【例14-1】 查询工作表中符合条件的数值和公式字符串。 311
【例14-2】 利用Find方法查询数值及公式结果。 312
【例14-3】 利用工作表函数Match查询数值及公式结果。 313
【例14-4】 利用工作表函数VLookup查询数值及公式结果。 313
【例14-5】 联合利用Find方法和Offset属性查询数值及公式结果。 314
【例14-6】 使用数据库函数DGet查询数值及公式结果。 314
【例14-7】 利用Like运算符进行模糊查询。 315
【例14-8】 从多个工作表或工作簿中查询数据。 315
【例14-9】 删除数据区域内的所有空白行。 316
【例14-10】 获取存在于两个工作表中相同数据的行数据。 316
【例14-11】 获取只存在于某个工作表中的行数据。 317
【例14-12】 从一个工作表中删除另一个工作表中存在的行数据。 318
【例14-13】 自动排序举例。 319
【例14-14】 自定义排序举例。 320
【例14-15】 先进行排序然后再恢复排序前的状态。 320
【例14-16】 执行自动筛选和撤销自动筛选。 322
【例14-17】 执行高级筛选和撤销高级筛选。 323
【例14-18】 执行高级筛选和撤销高级筛选。 323
【例14-19】 利用ADO+SQL进行复杂条件下的查询。 324
【例14-20】 利用ADO+SQL从工作簿的全部工作表中查询获取数据。 325
【例14-21】 利用ADO+SQL查询其他工作簿的数据。 326
【例14-22】 利用ADO+SQL对工作表数据进行复杂排序。 327
第15章 操作文件和文件夹 329
【例15-1】 利用Dir函数判断指定的文件夹是否存在。 330
【例15-2】 利用GetAttr函数获取文件夹的属性。 331
【例15-3】 使用MkDir语句创建文件夹。 331
【例15-4】 利用Name语句移动文件夹。 332
【例15-5】 利用Name语句更改文件夹名称。 332
【例15-6】 使用RmDir语句删除文件夹。 332
【例15-7】 使用Dir函数判断文件是否存在。 333
【例15-8】 获取文件的有关信息。 333
【例15-9】 使用FileCopy语句复制文件。 334
【例15-10】 利用Name语句移动文件。 334
【例15-11】 使用Kill语句删除文件。 335
【例15-12】 利用Name语句更改文件名。 335
【例15-13】 利用Dir函数和Name方法批量更改文件名。 335
【例15-14】 利用Dir函数和Kill方法批量删除文件。 336
【例15-15】 利用Application对象的FileSearch属性查找文件。 336
【例15-16】 利用FileSystemObject对象的GetFile方法获取文件的信息。 338
【例15-17】 使用FileExists方法检查文件是否存在。 338
【例15-18】 使用CopyFile方法复制文件。 339
【例15-19】 使用DeleteFile方法删除文件。 339
1.1 录制宏和保存宏 2
1.1.1 录制宏的基本方法 2
1.1.2 录制宏应注意的事项 2
1.2 为宏设置快捷键 3
1.2.1 重新为宏设置快捷键 3
1.2.2 更改宏的快捷键 3
1.3 查看录制的宏 4
1.3.1 查看保存在录制宏工作簿里的宏 4
1.3.2 查看保存在新工作簿里的宏 4
1.3.3 查看保存在个人宏工作簿中的宏 4
1.4 编辑修改录制的宏 5
1.5 运行录制的宏 6
1.5.1 使用快捷键运行宏 6
1.5.2 使用宏对话框运行宏 6
1.5.3 在VBE窗口中运行宏 6
1.5.4 使用Excel窗体运行宏 6
1.5.5 使用ActiveX控件运行宏 7
1.5.6 使用自定义按钮运行宏 9
1.5.7 使用图形对象运行宏 10
1.5.8 在其他过程中运行录制的宏 10
1.6 删除录制的宏 11
1.6.1 删除指定的录制的宏 11
1.6.2 将录制的宏连同保存宏的模块一并删除 11
第2章 使用VBE工具 12
2.1 VBE窗口的结构 13
2.2 设置VBE编辑器属性 13
2.2.1 设置“编辑器”选项卡项目 13
2.2.2 设置“编辑器格式”选项卡项目 15
2.2.3 设置“通用”选项卡项目 16
2.2.4 设置“可连接的”选项卡项目 17
2.3 VBE窗口的菜单栏和工具栏 17
2.3.1 VBE窗口的菜单栏 17
2.3.2 VBE窗口的工具栏 17
2.4 工程资源管理器窗口的结构 18
2.5 操作模块 18
2.5.1 插入模块 18
2.5.2 更改模块的名称 18
2.5.3 删除模块 19
2.6 使用代码窗口 19
2.6.1 代码窗口的结构 19
2.6.2 在代码窗口中只显示某个过程 20
2.6.3 显示模块中的所有过程 20
2.6.4 快速定位到某个过程 20
2.7 使用立即窗口 20
2.7.1 在立即窗口中查看计算结果 20
2.7.2 在立即窗口中执行命令 21
2.8 使用本地窗口 21
2.8.1 本地窗口的结构 21
2.8.2 通过本地窗口检查程序的
2.8.2 变量定义和运算结果 21
2.9 使用VBE的快捷键 22
2.9.1 使用代码编辑键 22
2.9.2 使用代码窗口常用键 22
2.9.3 使用代码窗口定位键 23
2.9.4 使用代码窗口快捷键 23
2.9.5 代码窗口中可使用的菜单快捷键 24
2.9.6 工程资源管理器中的键盘快捷键 25
2.9.7 属性窗口中的键盘快捷键 26
2.9.8 窗体的快捷键 27
第3章 获取VBA帮助信息 28
3.1 获取帮助信息 29
3.2 通过Visual Basic帮助窗口的
3.2 目录得到帮助 30
3.3 快速获取帮助信息 30
第4章 VBA基础语法 31
4.1 数据类型 32
4.1.1 数据类型 32
4.1.2 自定义数据类型 32
4.2 声明变量和常量 33
4.2.1 强制声明变量 33
4.2.2 定义变量应注意的事项 33
4.2.3 定义变量 33
4.2.4 使用类型标识符定义变量 34
4.2.5 定义和使用对象变量 34
4.2.6 定义模块级变量 35
4.2.7 定义公共变量 35
4.2.8 定义常量 35
4.2.9 如何使用VBA内置常量 35
4.3 定义数组 36
4.3.1 定义静态数组 36
4.3.2 定义动态数组 36
4.3.3 将数组的缺省下界设置为1 36
4.3.4 获取数组的最小下标和最大下标 37
4.4 数据运算符 37
4.4.1 赋值运算符 37
4.4.2 数学运算符 37
4.4.3 比较运算符 38
4.4.4 逻辑运算符 38
4.5 语句基本知识 38
4.5.1 写声明语句 38
4.5.2 写赋值语句 38
4.5.3 写可执行语句 39
4.6 循环语句 39
4.6.1 使用For ... Next循环语句 39
4.6.2 使用For Each...Next循环语句 40
4.6.3 退出For循环 41
4.6.4 使用Do ... Loop循环语句 41
4.6.5 退出Do循环 43
4.6.6 使用While ... Wend循环语句 43
4.6.7 循环数组中的所有元素 43
4.6.8 循环对象集合中的所有对象 44
4.6.9 使用多重循环 44
4.7 条件控制语句 44
4.7.1 使用If条件语句 44
4.7.2 使用Select ... Case语句 47
4.8 语句书写技巧 48
4.8.1 将多个语句写在一行上 48
4.8.2 将一个语句断开成数行 48
4.8.3 添加注释语句 49
4.8.4 使用With语句提高程序运行效率 49
第5章 使用工作簿函数和VBA函数 50
5.1 在VBA中使用工作簿函数 51
5.1.1 在VBA过程中调用工作簿函数 51
5.1.2 通过VBA向单元格输入工作簿函数 51
5.1.3 通过VBA向单元格输入普通公式 52
5.1.4 通过VBA向单元格输入数组公式 52
5.1.5 获取单元格中的公式表达式 52
5.1.6 判断某单元格区域是否
5.1.6 为数组公式单元格区域的一部分 53
5.1.7 删除工作表中的所有数据,
5.1.6 但保留所有公式 53
5.2 使用VBA内置函数 54
5.2.1 VBA函数与工作簿函数的区别 54
5.2.2 快速获取函数的参数信息 54
5.2.3 使用VBA日期和时间函数 54
5.2.4 使用VBA字符串函数 55
5.2.5 使用VBA财务函数 55
5.2.6 使用VBA数学函数 56
5.2.7 使用VBA检查函数 56
5.2.8 利用IIf函数返回两个参数中一个值 57
5.2.9 利用Choose函数从参数
5.2.9 列表中选择并返回一个值 57
5.2.10 利用Switch函数从参数
5.1.6 列表中选择并返回一个值 57
5.2.11 重要的VBA函数——
5.1.6 ARRAY:快速输入数据 58
5.2.12 重要的VBA函数——
5.1.6 ARRAY:快速输入行标题和列标题 58
5.2.13 重要的VBA函数——
5.1.6 FORMAT格式函数 58
5.2.14 重要的VBA函数——
5.1.6 输入函数InputBox 59
5.2.15 使用InputBox方法限制
5.1.6 输入特定类型的数据 60
5.2.16 重要的VBA函数——输出函数MsgBox 61
5.2.17 使用不返回值的MsgBox函数 63
第6章 过程和自定义函数 64
6.1 子过程 65
6.1.1 什么是通用子过程 65
6.1.2 创建通用子过程 65
6.1.3 什么是事件子过程 65
6.1.4 创建Application对象的事件子过程 66
6.1.5 创建Chart对象的事件子过程 67
6.1.6 创建工作簿和工作表的事件子过程 67
6.1.7 创建窗体控件的事件子过程 68
6.1.8 调用子过程 68
6.1.9 调用标准模块中的子过程 69
6.1.10 调用窗体对象模块中的过程 69
6.1.11 调用工作表对象中的过程 69
6.1.12 调用工作簿对象中的过程 69
6.1.13 获取某过程中变量的计算结果 69
6.2 自定义函数 70
6.2.1 自定义函数的语法结构 70
6.2.2 创建自定义函数 70
6.2.3 设计参数可选的自定义函数 71
6.2.4 为自定义函数的可选参数指定默认值 71
6.2.5 设计参数个数不定的自定义函数 73
6.2.6 设计返回数组的自定义函数 73
6.2.7 为自定义函数添加提示信息 73
6.2.8 将自定义函数归类 74
6.2.9 在工作表中调用自定义函数 75
6.2.10 在过程中调用自定义函数 75
6.2.11 不返回函数值而直接调用自定义函数 76
6.2.12 调用保存在窗体、工作表、
6.2.12 工作簿等对象中的自定义函数 76
第7章 操作Application对象 77
7.1 获取Excel系统信息 78
7.1.1 获取Excel版本 78
7.1.2 获取Excel的安装路径 78
7.1.3 获取当前用户名 78
7.1.4 获取启动Excel的路径 78
7.1.5 获取打开Excel文件时的默认路径 78
7.1.6 获取当前打印机的名称 79
7.1.7 获取Excel应用程序的标题文字 79
7.1.8 获取“自动恢复”临时文件的路径 79
7.2 自定义Excel窗口 79
7.2.1 修改Excel应用程序的标题文字 79
7.2.2 删除Excel应用程序的标题文字 80
7.2.3 恢复Excel应用程序的默认标题文字 80
7.2.4 删除/恢复Excel菜单项 81
7.2.5 使Excel菜单项或其命令不可操作 81
7.2.6 使Excel的工具栏或其命令按钮不可操作 82
7.2.7 隐藏和显示编辑栏 83
7.2.8 隐藏和显示标准工具栏 83
7.2.9 隐藏和显示格式工具栏 83
7.2.10 隐藏和显示状态栏 84
7.2.11 在状态栏中显示信息 84
7.2.12 将Excel全屏显示 84
7.2.13 隐藏Excel本身 85
7.2.14 改变鼠标指针形状 85
7.3 设置Excel操作选项 86
7.3.1 设置新工作簿中的工作表个数 86
7.3.2 设置工作簿的默认路径 86
7.3.3 设置保存自动恢复文件的
7.3.3 时间间隔和保存位置 86
7.3.4 停止和启用屏幕刷新 87
7.3.5 改变手动和自动计算方式 87
7.3.6 不显示警告信息框 88
7.3.7 显示Excel的内置对话框 88
7.3.8 将厘米转换为磅 88
7.4 制定程序运行计划 89
7.4.1 使程序在指定的时间开始运行 89
7.4.2 定期运行程序以分析数据 89
7.4.3 使程序每隔一段时间就自动运行程序 90
7.4.4 OnTime方法的另一种应用:
5.1.6 禁止改变Excel本身窗口大小 90
7.4.5 取消程序的运行计划 91
7.5 为Application对象设置事件 91
7.5.1 Application对象事件概述 91
7.5.2 利用Application对象的事件 92
7.5.3 在新建工作簿时自动执行程序 92
7.5.4 在激活任意工作簿窗口时执行程序 93
7.5.5 禁止打印打开的任何工作簿 93
第8章 操作Workbook对象 95
8.1 引用工作簿 96
8.1.1 引用打开的某个工作簿 96
8.1.2 引用当前的活动工作簿 97
8.1.3 引用当前宏代码运行的工作簿 97
8.1.4 引用新建的工作簿 97
8.1.5 引用有特定工作表的工作簿 98
8.2 获取工作簿的基本信息 98
8.2.1 获取所有打开的工作簿的名称和路径 98
8.2.2 判断工作簿是否已经被打开 99
8.2.3 判断工作簿是否已经被保存 99
8.2.4 获取工作簿上次保存的时间 100
8.2.5 获取宏代码运行的工作簿完整名称 100
8.2.6 获取宏代码运行的工作簿路径 101
8.2.7 获取宏代码运行的工作簿的
5.1.6 带扩展名的名称 101
8.2.8 获取宏代码运行的工作簿的基础名称 101
8.2.9 获取和设置工作簿的文档属性 101
8.3 新建、打开工作簿 102
8.3.1 在当前的Excel窗口中新建一个工作簿 102
8.3.2 重新启动Excel应用程序
5.1.6 并新建一个工作簿 102
8.3.3 打开指定的工作簿 103
8.3.4 以只读的方式打开工作簿 103
8.3.5 在不更新链接的情况下打开工作簿 103
8.3.6 打开有打开密码保护的工作簿 104
8.3.7 通过对话框打开工作簿 104
8.4 保存、关闭工作簿 104
8.4.1 保存工作簿但不关闭工作簿 104
8.4.2 另存工作簿 105
8.4.3 将工作簿指定密码保存 105
8.4.4 保存工作簿副本 105
8.4.5 关闭工作簿但不保存 106
8.4.6 关闭工作簿并保存所有更改 106
8.4.7 通过对话框指定名字和
5.1.6 保存位置并关闭工作簿 106
8.4.8 关闭所有打开的工作簿但不保存 106
8.4.9 关闭所有打开的工作簿并保存更改 107
8.4.10 关闭所有打开的工作簿并同时
8.4.10 关闭Microsoft Excel应用程序 107
8.5 为工作簿设置/取消保护密码 107
8.5.1 判断工作簿是否有保护 107
8.5.2 为工作簿指定保护密码 108
8.5.3 撤销工作簿的保护密码 108
8.6 自定义工作簿窗口 109
8.6.1 改变工作簿窗口的大小 109
8.6.2 拆分工作簿窗口并冻结窗格 109
8.6.3 取消工作簿窗口的拆分和冻结 110
8.6.4 隐藏和显示工作簿窗口 110
8.6.5 设定工作簿窗口的各种显示状态 110
8.6.6 重排工作簿窗口 111
8.6.7 设置工作簿的网格线格式 112
8.7 利用工作簿的事件操作工作簿 112
8.7.1 工作簿的事件 113
8.7.2 在打开工作簿时就运行程序 113
8.7.3 在关闭工作簿时就运行程序 113
8.7.4 在激活工作簿时就运行程序 114
8.7.5 在工作簿不是活动工作簿时就运行程序 114
8.7.6 在保存工作簿时就运行程序 115
8.7.7 在打印工作簿时就执行程序——
5.1.6 制作打印日志 115
8.7.8 在打印工作簿时就执行程序——
5.1.6 计算打印累计次数 116
8.7.9 在打印工作簿时就执行程序——
5.1.6 禁止打印当前工作簿 116
8.7.10 在打印工作簿时就执行程序——
5.1.6 禁止打印某个工作表 117
8.7.11 为工作簿内所有的工作表
8.7.11 指定相同的事件处理程序 117
8.7.12 禁止删除当前工作簿内的工作表 118
8.7.13 禁止移动或复制当前工作簿内的工作表 119
8.7.14 禁止对当前工作簿内的工作表重命名 120
8.7.15 禁止在当前工作簿内插入新工作表 121
8.7.16 为当前工作簿的所有工作表
8.7.16 设置相同的页眉和页脚 121
第9章 操作Worksheet对象 122
9.1 引用工作表 123
9.1.1 引用某个工作簿的某个工作表 123
9.1.2 引用某个工作簿中的活动工作表 124
9.1.3 引用当前活动工作簿中的活动工作表 124
9.1.4 引用当前宏代码运行的
5.1.6 工作簿中的某个工作表 125
9.1.5 引用新建的工作表 125
9.1.6 引用工作表名称中包含有
5.1.6 特定字符串的工作表 125
9.2 获取工作表的基本信息 126
9.2.1 获取工作表名称 126
9.2.2 获取工作簿内所有工作表的名称 126
9.2.3 判断某个表是否为普通工作表 127
9.2.4 判断指定名称的工作表是否存在 127
9.3 操作工作表 128
9.3.1 隐藏工作表并通过菜单取消隐藏 128
9.3.2 隐藏工作表但不能通过菜单取消隐藏 128
9.3.3 显示被隐藏的工作表 129
9.3.4 重命名工作表 129
9.3.5 新建工作表并重命名 130
9.3.6 在本工作簿内复制工作表 131
9.3.7 将本工作簿内的某工作表
5.1.6 复制到一个新工作簿中 131
9.3.8 将本工作簿内的某工作表
5.1.6 复制到另外一个打开的工作簿中 131
9.3.9 在本工作簿内移动工作表 132
9.3.10 将本工作簿内的某工作表
5.1.6 移动到一个新工作簿中 132
9.3.11 将本工作簿内的某工作表
5.1.6 移动到另外一个打开的工作簿中 132
9.3.12 删除工作表 133
9.3.13 保护工作表 133
9.3.14 撤销对工作表的保护 133
9.3.15 激活工作表 134
9.3.16 选择工作表 134
9.3.17 显示和隐藏指定工作表的行号和列标 134
9.3.18 禁止使用快捷菜单对工作表进行
5.1.6 插入/删除/重命名/移动或复制操作 135
9.4 利用工作表的事件操作工作表 135
9.4.1 工作表的事件 135
9.4.2 为工作表指定事件 136
9.4.3 在激活工作表时就运行程序 137
9.4.4 在工作表为非活动时就运行程序 137
9.4.5 在工作表的单元格数据发生
5.1.6 变化时就运行程序 138
9.4.6 在选择工作表单元格区域发生
5.1.6 变化时就运行程序 139
9.4.7 在双击左键时就运行程序 139
9.4.8 在单击右键时就运行程序 139
9.4.9 在对工作表进行计算时执行程序 140
第10章 操作Range对象 141
10.1 引用单元格和单元格区域 142
10.1.1 使用Range属性引用某个单元格 142
10.1.2 使用Range属性引用连续的单元格区域 142
10.1.3 使用Range属性引用
10.1.3 不连续的单元格区域 142
10.1.4 使用Range属性引用
10.1.3 不确定的某个单元格 143
10.1.5 使用Range属性引用
10.1.3 不确定的连续单元格区域 143
10.1.6 使用Range属性引用
10.1.3 不确定的不连续单元格区域 143
10.1.7 使用Range属性引用单列 144
10.1.8 使用Range属性引用连续的多列 144
10.1.9 使用Range属性引用不连续的多列 144
10.1.10 使用Range属性引用单行 145
10.1.11 使用Range属性引用连续的多行 145
10.1.12 使用Range属性引用不连续的多行 145
10.1.13 通过定义名称引用单元格区域 146
10.1.14 使用Cells属性引用某个单元格 146
10.1.15 使用Cells属性引用连续的单元格区域 146
10.1.16 利用Rows属性引用连续的整行 147
10.1.17 利用Rows属性引用不连续的整行 147
10.1.18 利用Columns属性引用连续的整列 148
10.1.19 利用Columns属性引用不连续的整列 148
10.1.20 引用工作表的全部单元格 148
10.1.21 引用活动单元格 148
10.1.22 使用UsedRange属性引用
10.1.3 已使用的单元格区域 149
10.1.23 引用被空白行和空白列
10.1.3 包围的单元格区域 149
10.1.24 利用Offset属性动态
10.1.3 引用某个单元格 149
10.1.25 利用Offset属性动态
10.1.3 引用连续的单元格区域 150
10.1.26 利用Resize属性引用
10.1.3 变化后的单元格区域 150
10.1.27 利用Union方法引用
10.1.3 多个非连续单元格区域 151
10.1.28 引用多个单元格区域的交叉区域 151
10.1.29 引用有计算公式的所有单元格 152
10.1.30 引用隐藏的行和列 153
10.1.31 引用指定单元格区域内的
10.1.3 所有空白单元格 153
10.1.32 引用指定单元格区域内的
10.1.3 所有设置有数据有效性的单元格 154
10.1.33 引用指定单元格区域内的
10.1.3 所有可见单元格 154
10.1.34 引用指定单元格区域内的
10.1.3 所有出现错误的单元格 155
10.1.35 引用指定单元格区域内
10.1.3 有批注的单元格 155
10.1.36 引用指定单元格区域内
10.1.3 所有设置有条件格式的单元格 156
10.2 获取单元格和单元格区域信息 156
10.2.1 获取单元格或单元格区域的地址 156
10.2.2 获取单元格的行号 156
10.2.3 获取单元格的列标字母 157
10.2.4 获取单元格区域的起始
10.2.4 行号和终止行号 157
10.2.5 获取单元格区域的起始列号和终止列号 158
10.2.6 利用End属性获取数据
10.1.3 区域的最后一行行号 158
10.2.7 利用End属性获取数据
10.1.3 区域的最前一行行号 158
10.2.8 利用End属性获取数据
10.1.3 区域的最后一列列号 158
10.2.9 利用End属性获取数据
10.1.3 区域的最前一列列号 158
10.2.10 判断单元格内是否输入了公式 159
10.2.11 判断单元格内是否输入了数组公式 159
10.2.12 获取单元格内的公式字符串 160
10.2.13 获取单元格的字体对象信息 160
10.2.14 获取单元格的内部对象信息 160
10.2.15 获取单元格的数据 161
10.3 设置单元格和单元格区域格式 161
10.3.1 设置单元格的字体属性 161
10.3.2 设置单元格的下划线 162
10.3.3 设置单元格字符串的一部分字符的格式 162
10.3.4 设置和删除单元格区域的边框 162
10.3.5 设置单元格的数字格式 163
10.3.6 设置单元格颜色和背景 164
10.3.7 设置单元格对齐方式 164
10.3.8 缩小单元格内容以全部显示 165
10.3.9 设置单元格的有效性规则 165
10.3.10 为单元格设置或删除超链接 166
10.3.11 为单元格添加和删除批注 167
10.3.12 为单元格区域定义和删除名称 167
10.3.13 根据单元格内容自动调整列宽和行高 168
10.3.14 设置单元格的行高和列宽 168
10.4 操作单元格和单元格区域 169
10.4.1 隐藏行和列 169
10.4.2 合并和取消合并单元格 170
10.4.3 删除单元格的全部信息 170
10.4.4 删除单元格的公式和值 170
10.4.5 删除单元格的格式 170
10.4.6 删除单元格的批注 170
10.4.7 插入单元格 170
10.4.8 插入整行和整列 171
10.4.9 每隔数行插入一个空行 171
10.4.10 删除单元格 172
10.4.11 删除整行和整列 172
10.4.12 删除工作表的全部单元格 173
10.4.13 删除工作表的全部空行 173
10.4.14 删除工作表的全部空列 173
10.4.15 移动单元格 174
10.4.16 复制单元格的全部信息 174
10.4.17 只复制单元格的值 175
10.4.18 只复制单元格的公式 176
10.4.19 只复制单元格的格式 176
10.4.20 只复制单元格的批注 176
10.4.21 只复制单元格的有效性设置 177
10.4.22 为不同的单元格区域
10.1.3 设置不同的保护密码 177
10.5 向单元格和单元格区域输入数据 178
10.5.1 向单元格输入数值 178
10.5.2 向单元格输入字符串 179
10.5.3 向单元格输入数字型字符串 179
10.5.4 向单元格输入公式 179
10.5.5 向单元格输入数组公式 179
10.5.6 向单元格输入日期 179
10.5.7 向单元格输入时间 180
10.5.8 向单元格输入分数 180
10.5.9 向单元格输入邮政编码 180
10.5.10 向单元格输入18位的身份证号码 181
10.5.11 快速输入行标题 181
10.5.12 快速输入列标题 181
10.5.13 快速向单元格区域输入相同的数据 181
10.5.14 快速向单元格区域输入序列数据 181
10.5.15 快速向单元格区域输入连续的日期 182
10.5.16 快速向单元格区域输入
10.1.3 具有固定日期间隔的日期 183
10.5.17 向单元格输入多行数据 183
10.5.18 向单元格输入特殊字符 183
10.5.19 快速向某些单元格输入
10.1.3 带小数点的数字 183
10.5.20 不激活工作表就向该工作表输入数据 184
10.5.21 同时为多个工作表的相同
10.1.3 单元格区域输入相同的数据 184
第11章 使用窗体 185
11.1 用户窗体概述 186
11.1.1 创建用户窗体 186
11.1.2 导出用户窗体 186
11.1.3 导入用户窗体 186
11.1.4 删除用户窗体 187
11.2 设置用户窗体属性 187
11.2.1 更改用户窗体名称 187
11.2.2 更改窗体的标题文字 188
11.2.3 为窗体添加背景图片 188
11.2.4 删除窗体上的背景图片 190
11.2.5 改变窗体的大小 191
11.2.6 设置窗体背景颜色 191
11.2.7 设置窗体外观 192
11.3 加载和卸载用户窗体 194
11.3.1 加载并显示窗体 194
11.3.2 加载但不显示窗体 194
11.3.3 隐藏窗体 194
11.3.4 卸载窗体 194
11.4 利用事件控制用户窗体 195
11.4.1 窗体的常用事件 195
11.4.2 为窗体指定事件的方法 195
11.4.3 在装载窗体时就执行程序 196
11.4.4 在激活窗体时就执行程序 196
11.4.5 在单击时就执行程序 197
11.4.6 禁止使用窗体右上角的
10.1.3 X按钮关闭窗体 197
11.5 用户窗体的高级使用技巧 197
11.5.1 以无模式状态显示窗体 197
11.5.2 能够同时显示并能操作多个窗体 198
11.5.3 将窗体显示在窗口的指定位置 198
11.5.4 使窗体自动布满整个屏幕 199
11.5.5 隐藏/显示用户窗体的X按钮 199
11.5.6 将窗体的X按钮设置为有效和无效 200
11.5.7 为窗体添加最大化和最小化按钮 201
11.5.8 在启动工作簿时仅显示窗体,
10.1.3 而不显示Excel界面 203
11.5.9 设计有上下滚动字幕的窗体 203
11.5.10 设计有左右滚动字幕的窗体 204
11.5.11 在激活窗体时就播放音乐 205
11.5.12 运行时创建窗体和控件
10.1.3 并为其设计事件程序代码 206
第12章 使用控件 210
12.1 控件概述 211
12.1.1 为控件工具箱添加或删除控件 211
12.1.2 在窗体上插入控件 212
12.1.3 对齐窗体上的控件 212
12.1.4 统一设置多个控件的高度和
10.1.3 宽度及其他共有属性 212
12.1.5 设置控件的Tab键顺序 213
12.1.6 为控件设置默认属性值 214
12.1.7 设置控件的前景色和背景色 214
12.1.8 设置控件的焦点 214
12.1.9 为控件添加图片和删除图片 214
12.1.10 引用窗体上的某个控件 215
12.1.11 引用窗体上的某一类控件 215
12.1.12 引用窗体上的全部控件 216
12.1.13 获取窗体上所有控件的名称和类型 216
12.1.14 引用窗体上的某些控件 217
12.1.15 获取控件的有关信息 217
12.1.16 显示和隐藏控件 218
12.1.17 将控件变为不可操作和可操作 218
12.1.18 当鼠标停留在控件上面时
10.1.3 显示提示信息 219
12.1.19 当鼠标停留在控件上面时
10.1.3 改变鼠标指针类型 219
12.1.20 当鼠标停留在控件上面时
10.1.3 改变鼠标的图像 220
12.1.21 当鼠标停留在控件上面时改变
10.1.3 控件颜色,离开时恢复默认颜色 220
12.2 标签 221
12.2.1 设置标签的标题文字 221
12.2.2 设置标签标题文字的对齐方式 221
12.2.3 设置标签是否能够自动调整
10.1.3 大小以显示所有内容 222
12.2.4 设置标签的背景样式 222
12.2.5 设置标签的前景色和背景色 222
12.2.6 设置标签的边框和边框外观 222
12.2.7 利用标签显示运行过程及结果:
10.1.3 制作进度条 223
12.2.8 当单击标签时就执行程序 224
12.3 文本框 224
12.3.1 获取文本框的数据 224
12.3.2 将文本框的数字字符串转换为数字 225
12.3.3 将文本框的数字字符串转换为日期 225
12.3.4 向文本框中输入数据 225
12.3.5 设置文本框内字符的对齐方式 225
12.3.6 设置文本框内字符的显示格式 225
12.3.7 限制文本框内输入的字符长度 226
12.3.8 限制文本框内的输入数据 226
12.3.9 不显示输入到文本框的内容 227
12.3.10 将文本框设置为自动换行 227
12.3.11 使文本框内字符在任意字符后换行 228
12.3.12 显示和隐藏文本框的水平
10.1.3 滚动条和垂直滚动条 228
12.3.13 设置文本框为必须输入状态 229
12.3.14 限制只能在文本框中输入负号、
10.1.3 数字和小数点 229
12.3.15 限制只能在文本框中输入字母 229
12.3.16 当修改文本框中内容时就执行程序 230
12.3.17 当文本框数据变更后就执行程序 230
12.3.18 在文本框中输入数据后就朗读出来 230
12.3.19 在文本框获得焦点时改变背景色 231
12.4 命令按钮 231
12.4.1 更改命令按钮的标题文字 231
12.4.2 将命令按钮设置为默认按钮 231
12.4.3 将命令按钮设置为取消按钮 231
12.4.4 在单击按钮时就执行程序 231
12.4.5 在单击按钮时就朗读出提示信息 232
12.5 复选框 232
12.5.1 设置复选框的标题文字及对齐方式 232
12.5.2 判断复选框是否被选中 233
12.5.3 在运行中选择或取消复选框 233
12.6 选项按钮 233
12.6.1 设置选项按钮的标题文字及对齐方式 234
12.6.2 判断选项按钮是否被选中 234
12.6.3 在运行中选择或取消选项按钮 234
12.6.4 能够同时选择两个以上的选项按钮 234
12.7 框架 235
12.7.1 设置框架的标题文字 235
12.7.2 设置框架外观 235
12.7.3 将框架设计为两条水平平行线或
10.1.3 一条水平直线 235
12.7.4 将框架设计为两条垂直平行线或
10.1.3 一条垂直直线 236
12.7.5 获取框架内的所有控件名称及其值 236
12.8 复合框 236
12.8.1 利用AddItem方法为复合框
10.1.3 列表添加项目 236
12.8.2 利用RowSource属性为复合框
10.1.3 列表添加项目 237
12.8.3 利用List属性为复合框列表添加项目 238
12.8.4 利用Column属性为复合框
10.1.3 列表添加项目 238
12.8.5 利用Value属性获取复合框的
10.1.3 某条项目值 238
12.8.6 利用List属性获取复合框的
10.1.3 某条项目值 239
12.8.7 利用Column属性获取复合框的
10.1.3 某条项目值 239
12.8.8 利用数组获取复合框的某条项目值 240
12.8.9 利用Clear方法删除复合框的全部项目 240
12.8.10 利用RowSource属性删除
10.1.3 复合框的全部项目 240
12.8.11 删除复合框的某条项目 241
12.8.12 设置复合框的显示类型和行为 241
12.8.13 取消复合框项目的选择 242
12.8.14 将复合框设置为必须选择或
10.1.3 必须输入状态 242
12.8.15 在复合框的值发生改变时就执行程序 242
12.9 列表框 243
12.9.1 利用AddItem方法为列表框
10.1.3 列表添加项目 243
12.9.2 利用RowSource属性为列表框
10.1.3 列表添加项目 243
12.9.3 利用List属性为列表框列表添加项目 244
12.9.4 利用Column属性为列表框
10.1.3 列表添加项目 244
12.9.5 利用Value属性获取列表框的
10.1.3 某条项目值 245
12.9.6 利用List属性获取列表框的
10.1.3 某条项目值 245
12.9.7 利用Column属性获取列表框的
10.1.3 某条项目值 246
12.9.8 利用Clear方法删除列表框的全部项目 246
12.9.9 利用RowSource属性删除
10.1.3 列表框的全部项目 247
12.9.10 删除列表框的某条项目 247
12.9.11 设置列表框的单选和多选状态 247
12.9.12 取消列表框项目的选择 248
12.9.13 在列表框的值发生改变时就执行程序 248
12.9.14 在单击列表框时就执行程序 248
12.10 图像控件 248
12.10.1 使用图像控件显示图片 249
12.10.2 设置图片的显示效果 250
12.10.3 利用工作表数据为图像控件添加图片 250
12.11 其他标准控件 250
12.11.1 实现旋转按钮与文本框的联动 250
12.11.2 使用滚动条 251
12.11.3 使用多页控件 253
12.11.4 使用切换按钮 254
12.11.5 利用标签条(TabStrip控件)
10.1.3 动态显示数据 255
12.12 非标准控件 256
12.12.1 利用进度条控件显示运行进程 256
12.12.2 利用ListView控件在窗体上制作报表 257
12.12.3 利用TreeView控件在窗体上
10.1.3 显示多维数据 259
12.12.4 利用Spreadsheet控件在
10.1.3 窗体上编辑数据 260
12.12.5 利用ChartSpace控件在
10.1.3 窗体上绘制动态图表 262
12.12.6 使用日历控件(Calendar) 265
12.12.7 使用获取日期控件(DTPicker) 266
12.13 在工作表中使用ActiveX控件 267
12.12.1 引用工作表中的ActiveX控件 267
12.12.2 自动在工作表中插入ActiveX控件 267
12.12.3 在工作表中自动插入
10.1.3 ActiveX控件对象并重命名 268
12.12.4 设置ActiveX控件的标题
10.1.3 文字及字体属性 269
12.12.5 设置ActiveX控件的前景色和背景色 270
12.12.6 设置ActiveX控件的大小和位置 270
12.12.7 获取ActiveX控件的值 270
12.14 控件的高级使用技巧 271
12.14.1 每单击一次按钮就执行不同的操作 271
12.14.2 为控件指定多个事件 272
12.14.3 为控件创建类集 273
第13章 操作菜单和工具栏 275
13.1 获取Excel菜单栏信息 276
13.1.1 获取Excel菜单栏信息 276
13.1.2 获取Excel【文件】菜单项信息 277
13.1.3 获取Excel【编辑】菜单项信息 278
13.1.4 获取Excel【视图】菜单项信息 279
13.1.5 获取Excel【插入】菜单项信息 280
13.1.6 获取Excel【格式】菜单项信息 281
13.1.7 获取Excel【工具】菜单项信息 281
13.1.8 获取Excel【数据】菜单项信息 282
13.1.9 获取Excel【窗口】菜单项信息 283
13.2 获取Excel工具栏信息 284
13.2.1 获取Excel所有工具栏信息清单 284
13.2.2 获取Excel标准工具栏信息 285
13.2.3 获取Excel格式工具栏信息 286
13.2.4 获取Excel命令按钮的Icon和FaceID 287
13.3 更改现有的Excel菜单和工具栏 288
13.3.1 禁止使用Excel菜单栏的菜单项 288
13.3.2 删除和恢复Excel菜单栏 289
13.3.3 隐藏和恢复Excel工具栏 289
13.3.4 在现有的菜单中添加或删除
10.1.3 自定义菜单命令项 290
13.3.5 在Excel菜单栏中创建和删除
10.1.3 自定义子菜单 291
13.3.6 改变Excel命令按钮的Icon 292
13.3.7 在菜单栏或工具栏中添加
10.1.3 自定义命令按钮 293
13.3.8 在Excel的工具栏中创建
10.1.3 一个自定义组合框命令按钮 294
13.3.9 在Excel的工具栏中创建
10.1.3 一个自定义下拉命令按钮 295
13.3.10 禁止使用Excel的菜单命令 296
13.4 创建自定义主菜单栏 297
13.5 创建和删除自定义工具栏 299
13.5.1 创建和删除自定义工具栏 299
13.5.2 创建和删除由内置命令
10.1.3 组成的自定义工具栏 301
13.5.3 为每个工作表设计不同的
10.1.3 自定义工具栏 302
13.6 创建自定义快捷菜单 304
13.6.1 获取Excel的全部快捷菜单信息 304
13.6.2 为快捷菜单添加或删除菜单项 305
13.6.3 为快捷菜单添加和删除内置命令 306
13.6.4 为某些单元格区域创建
10.1.3 一个全新的快捷菜单 307
13.6.5 使Excel的快捷菜单失效 308
13.6.6 在工作表的任意位置快速
10.1.3 显示快捷菜单 308
13.6.7 为窗体控件创建自定义快捷菜单 308
第14章 利用VBA处理工作表数据 310
14.1 利用VBA常规方法处理工作表数据 311
14.1.1 查询工作表中符合条件的
10.1.3 数值和公式字符串 311
14.1.2 查询数值及公式结果 312
14.1.3 进行模糊查询 315
14.1.4 从多个工作表或工作簿中查询数据 315
14.1.5 删除数据区域内的所有空白行 316
14.1.6 获取存在于两个工作表中
10.1.3 相同数据的行数据 316
14.1.7 获取只存在于某个工作表中的行数据 317
14.1.8 从一个工作表中删除另一个
10.1.3 工作表中存在的行数据 318
14.1.9 数据排序 318
14.1.10 数据筛选 321
14.2 利用ADO+SQL处理工作表数据 323
14.2.1 利用ADO+SQL进行复杂
10.1.3 条件下的查询 324
14.2.2 从工作簿的全部工作表中
10.1.3 查询获取数据 325
14.2.3 查询其他工作簿的数据 326
14.2.4 对工作表数据进行复杂排序 327
第15章 操作文件和文件夹 329
15.1 操作文件夹 330
15.1.1 判断文件夹是否存在 330
15.1.2 获取文件夹的属性 330
15.1.3 创建文件夹 331
15.1.4 移动文件夹 331
15.1.5 更改文件夹名称 332
15.1.6 删除文件夹 332
15.2 操作文件 333
15.2.1 判断文件是否存在 333
15.2.2 获取文件的信息 333
15.2.3 复制文件 334
15.2.4 移动文件 334
15.2.5 删除文件 335
15.2.6 更改文件名 335
15.2.7 批量更改文件名 335
15.2.8 批量删除文件 336
15.2.9 利用Application对象的
10.1.3 FileSearch属性查找文件 336
15.3 利用文件对象模型操作文件 337
15.3.1 引用文件对象模型 337
15.3.2 FileSystemObject对象 338
15.3.3 检查文件是否存在 338
15.3.4 复制文件 339
15.3.5 删除文件 339
第16章 保护您的劳动成果 341
16.1 为VBA工程设置密码 342
16.2 防止别人通过强制中断
16.2 方式查看VBA代码 342
16.3 在禁用宏时就自动关闭工作簿 342
16.4 限制工作簿的使用时间,
16.2 超过时间就自我删除 343
16.5 限制工作簿的使用次数,
16.2 超过次数就自我删除 344
16.6 设置工作簿的登录窗口 345
实例目录
第4章 VBA基础语法
【例4-1】 自定义数据类型。 32
【例4-2】 将数组的缺省下界设置为1。 37
【例4-1】 自定义数据类型。 32
【例4-2】 将数组的缺省下界设置为1。 37
【例4-3】 设计一个九九乘法表。 40
【例4-4】 获取当前工作簿中的所有工作表名。 40
【例4-5】 判断工作表是否存在。 41
【例4-6】 Do...Loop循环语句的第一种结构使用举例。 41
【例4-7】 Do...Loop循环语句的第二种结构使用举例。 42
【例4-8】 Do...Loop循环语句的第三种结构使用举例。 42
【例4-9】 Do...Loop循环语句的第四种结构使用举例。 42
【例4-10】 退出Do循环举例。 43
【例4-11】 While ... Wend循环语句使用举例。 43
【例4-12】 循环数组中的所有元素。 43
【例4-13】 循环对象集合中的所有对象。 44
【例4-14】 单行格式的If条件语句应用举例。 45
【例4-15】 单行格式的If条件语句应用举例。 45
【例4-16】 If… Then格式的条件语句应用举例。 45
【例4-17】 If…Then…Else格式的条件语句应用举例。 46
【例4-18】 If…Then…ElseIf…Then格式的条件语句应用举例。 46
【例4-19】 Select ... Case语句使用举例(具体常数)。 47
【例4-20】 Select ... Case语句使用举例(连续的数据范围)。 47
【例4-21】 Select ... Case语句使用举例(Is关系表达式)。 48
【例4-22】 将多个语句写在一行上。 48
【例4-23】 With语句的使用举例。 49
第5章 使用工作簿函数和VBA函数 50
【例5-1】 使用Application对象的WorksheetFunction属性调用工作簿函数。 51
【例5-2】 使用字符串的处理方式向单元格输入工作簿函数。 52
【例5-3】 使用字符串的处理方式向单元格输入数组公式。 52
【例5-4】 采用定义Range对象变量的方法向单元格输入数组公式。 52
【例5-5】 利用Range对象的Formula属性获取单元格中的公式表达式。 53
【例5-6】 利用Range对象的FormulaArray属性,判断指定单元格区域是否为数组公式单元格区域的一部分。 53
【例5-7】 使用Range集合的SpecialCells方法删除工作表中的所有数据(仅留下所有的公式)。 53
【例5-8】 日期和时间函数使用举例。 54
【例5-9】 工作簿日期函数与VBA日期函数的比较。 55
【例5-10】 字符串函数使用举例。 55
【例5-11】 VBA财务函数使用举例。 56
【例5-12】 VBA数学函数使用举例。 56
【例5-13】 VBA检查函数使用举例。 56
【例5-14】 IIf函数使用举例。 57
【例5-15】 Choose函数使用举例。 57
【例5-16】 Switch函数使用举例。 58
【例5-17】 ARRAY函数使用举例。 58
【例5-18】 利用ARRAY函数快速输入行标题和列标题。 58
【例5-19】 FORMAT格式函数使用举例。 59
【例5-20】 输入函数InputBox使用举例——输入日期。 59
【例5-21】 输入函数InputBox使用举例——在信息输入框中显示帮助按钮。 59
【例5-22】 InputBox方法使用举例——输入数字。 61
【例5-23】 InputBox方法使用举例——输入文本。 61
【例5-24】 InputBox方法使用举例——输入数字和文本。 61
【例5-25】 输出函数MsgBox应用举例。 63
第6章 过程和自定义函数 64
【例6-1】 定义模块级变量并获取该变量的值。 69
【例6-2】 创建自定义函数。 71
【例6-3】 设计参数可选的自定义函数。 71
【例6-4】 为自定义函数的可选参数指定默认值——个人所得税自定义函数。 72
【例6-5】 设计参数个数不定的自定义函数。 73
【例6-6】 设计返回数组的自定义函数。 73
【例6-7】 为自定义函数添加提示信息。 73
【例6-8】 将自定义函数归类。 74
【例6-9】 在过程中调用自定义函数。 75
第7章 操作Application对象 77
【例7-1】 获取Excel版本。 78
【例7-2】 获取Excel的安装路径。 78
【例7-3】 获取当前用户名。 78
【例7-4】 获取启动Excel的路径。 78
【例7-5】 获取打开Excel文件时的默认路径。 79
【例7-6】 获取当前打印机的名称。 79
【例7-7】 获取Excel应用程序的标题文字。 79
【例7-8】 获取“自动恢复”临时文件的路径。 79
【例7-9】 修改Excel应用程序的标题文字。 80
【例7-10】 删除Excel应用程序的标题文字。 80
【例7-11】 恢复Excel应用程序的默认标题文字。 80
【例7-12】 删除/恢复Excel菜单项。 81
【例7-13】 使Excel菜单项或其命令不可操作。 81
【例7-14】 使Excel菜单项或其命令不可操作。 81
【例7-15】 使Excel的工具栏不可操作。 82
【例7-16】 使Excel的工具栏上的命令按钮不可操作。 82
【例7-17】 隐藏和显示编辑栏。 83
【例7-18】 隐藏和显示标准工具栏。 83
【例7-19】 隐藏和显示格式工具栏。 84
【例7-20】 隐藏和显示状态栏。 84
【例7-21】 在状态栏中显示信息。 84
【例7-22】 将Excel全屏显示。 85
【例7-23】 隐藏Excel本身。 85
【例7-24】 改变鼠标指针形状。 85
【例7-25】 设置新工作簿中的工作表个数。 86
【例7-26】 设置工作簿的默认路径。 86
【例7-27】 设置保存自动恢复文件的时间间隔和保存位置。 87
【例7-28】 改变手动和自动计算方式。 87
【例7-29】 不显示警告信息框。 88
【例7-30】 显示Excel的内置对话框。 88
【例7-31】 将厘米转换为磅。 88
【例7-32】 使程序在指定的时间开始运行。 89
【例7-33】 定期运行程序以分析数据。 89
【例7-34】 使程序每隔一段时间就自动运行程序。 90
【例7-35】 使用OnTime方法禁止改变Excel本身窗口大小。 90
【例7-36】 取消程序的运行计划。 91
【例7-37】 Application对象的NewWorkbook事件使用举例。 93
【例7-38】 Application对象的SheetActivate事件使用举例。 93
【例7-39】 Application对象的WorkbookBeforePrint事件使用举例。 93
第8章 操作Workbook对象 95
【例8-1】 通过索引编号引用工作簿。 96
【例8-2】 通过名称引用工作簿。 96
【例8-3】 引用当前的活动工作簿。 97
【例8-4】 引用当前宏代码运行的工作簿。 97
【例8-5】 引用新建的工作簿。 97
【例8-6】 引用有特定工作表的工作簿。 98
【例8-7】 获取所有打开的工作簿的名称和路径。 98
【例8-8】 利用循环方法判断工作簿是否已经被打开。 99
【例8-9】 利用错误处理方法判断工作簿是否已经被打开。 99
【例8-10】 利用Path属性判断工作簿是否已经被保存。 100
【例8-11】 利用Saved属性判断工作簿的更改是否已经被保存过。 100
【例8-12】 获取指定工作簿的上次保存时间。 100
【例8-13】 获取宏代码运行的工作簿完整名称。 101
【例8-14】 获取宏代码运行的工作簿路径。 101
【例8-15】 获取宏代码运行的工作簿的带扩展名的名称。 101
【例8-16】 获取宏代码运行的工作簿的基础名称。 101
【例8-17】 获取和设置工作簿的文档属性。 101
【例8-18】 新建工作簿。 102
【例8-19】 重新启动Excel应用程序并新建一个工作簿。 103
【例8-20】 利用Open方法并通过指定文件名的方式打开工作簿。 103
【例8-21】 以只读的方式打开工作簿。 103
【例8-22】 在不更新链接的情况下打开工作簿。 103
【例8-23】 利用Open方法打开有打开密码保护的工作簿。 104
【例8-24】 通过对话框打开工作簿。 104
【例8-25】 保存工作簿但不关闭工作簿。 104
【例8-26】 另存工作簿。 105
【例8-27】 将工作簿指定密码保存。 105
【例8-28】 保存工作簿副本。 105
【例8-29】 关闭工作簿但不保存。 106
【例8-30】 关闭工作簿并保存所有更改。 106
【例8-31】 通过对话框指定名字和保存位置并关闭工作簿。 106
【例8-32】 关闭所有打开的工作簿但不保存。 107
【例8-33】 关闭所有打开的工作簿并保存更改。 107
【例8-34】 关闭所有打开的工作簿及Excel应用程序。 107
【例8-35】 判断工作簿是否有保护。 108
【例8-36】 为工作簿指定保护密码。 108
【例8-37】 撤销工作簿的保护密码。 108
【例8-38】 保护工作簿/撤销工作簿保护。 109
【例8-39】 改变工作簿窗口的大小。 109
【例8-40】 拆分工作簿窗口并冻结窗格。 110
【例8-41】 取消工作簿窗口的冻结窗格。 110
【例8-42】 隐藏和显示工作簿窗口。 110
【例8-43】 设定工作簿窗口的各种显示状态。 111
【例8-44】 重排工作簿窗口。 112
【例8-45】 设置工作簿的网格线格式。 112
【例8-46】 Open事件应用举例。 113
【例8-47】 BeforeClose事件应用举例。 113
【例8-48】 Activate事件应用举例。 114
【例8-49】 Deactivate事件应用举例。 114
【例8-50】 BeforeSave事件应用举例。 115
【例8-51】 BeforePrint事件应用举例:制作打印日志。 115
【例8-52】 BeforePrint事件应用举例:制作打印日志。 115
【例8-53】 BeforePrint事件应用举例:计算打印累计次数。 116
【例8-54】 BeforePrint事件应用举例:禁止打印当前工作簿。 116
【例8-55】 BeforePrint事件应用举例:禁止打印某个工作表。 117
【例8-56】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 117
【例8-57】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 117
【例8-58】 为工作簿内所有的工作表指定SheetBefore RightClick事件。 118
【例8-59】 禁止删除当前工作簿内的指定工作表。 118
【例8-60】 禁止删除当前工作簿内的所有工作表。 118
【例8-61】 禁止移动或复制当前工作簿内的指定工作表。 119
【例8-62】 禁止移动或复制当前工作簿内的所有工作表。 119
【例8-63】 禁止重命名当前工作簿内的指定工作表。 120
【例8-64】 禁止重命名当前工作簿内的所有工作表。 120
【例8-65】 禁止在当前工作簿内插入新工作表。 121
【例8-66】 为当前工作簿的所有工作表设置相同的页眉。 121
第9章 操作Worksheet对象 122
【例9-1】 通过索引引用工作表。 123
【例9-2】 通过名称引用工作表。 123
【例9-3】 通过Sheets集合引用工作表。 124
【例9-4】 引用指定工作簿中的活动工作表。 124
【例9-5】 引用当前活动工作簿中的活动工作表。 124
【例9-6】 引用当前宏代码运行的工作簿中的某个工作表。 125
【例9-7】 引用新建的工作表。 125
【例9-8】 引用工作表名称中包含有特定字符串的工作表。 125
【例9-9】 通过循环Worksheets集合获取工作簿内所有工作表的名称。 126
【例9-10】 通过循环Sheets集合获取工作簿内所有工作表的名称。 126
【例9-11】 判断某个表是否为普通工作表。 127
【例9-12】 判断指定名称的工作表是否存在。 127
【例9-13】 判断指定名称的工作表是否存在。 128
【例9-14】 隐藏工作表并通过菜单取消隐藏。 128
【例9-15】 隐藏工作表但不能通过菜单取消隐藏。 128
【例9-16】 显示被隐藏的工作表。 129
【例9-17】 重命名工作表。 129
【例9-18】 新建一个工作表并重命名。 130
【例9-19】 新建多个工作表并重命名。 130
【例9-20】 在本工作簿内复制工作表。 131
【例9-21】 将本工作簿内的指定工作表复制到一个新工作簿中。 131
【例9-22】 将本工作簿内的某工作表复制到另外一个打开的工作簿中。 131
【例9-23】 在本工作簿内移动指定的工作表。 132
【例9-24】 将本工作簿内的指定工作表移动到一个新工作簿中。 132
【例9-25】 将本工作簿内的某工作表移动到另外一个打开的工作簿中。 132
【例9-26】 删除工作表。 133
【例9-27】 保护工作表。 133
【例9-28】 撤销对工作表的保护。 134
【例9-29】 显示和隐藏指定工作表的行号和列标。 134
【例9-30】 Activate事件和Deactivate事件应用举例。 137
【例9-31】 Change事件应用举例。 138
【例9-32】 Change事件应用举例。 138
【例9-33】 Change事件应用举例。 138
【例9-34】 SelectionChange事件应用举例。 139
【例9-35】 BeforeDoubleClick事件应用举例。 139
【例9-36】 BeforeRightClick事件应用举例。 139
【例9-37】 Calculate事件应用举例。 140
第10章 操作Range对象 141
【例10-1】 使用Range属性引用某个单元格。 142
【例10-2】 使用Range属性引用连续的单元格区域。 142
【例10-3】 使用Range属性引用不连续的单元格区域。 142
【例10-4】 采用字符串方式使用Range属性引用不确定的某个单元格。 143
【例10-5】 采用字符串方式使用Range属性引用不确定的连续单元格区域。 143
【例10-6】 采用字符串方式使用Range属性引用不确定的不连续单元格区域。 144
【例10-7】 使用Range属性引用单列。 144
【例10-8】 使用Range属性引用连续的多列。 144
【例10-9】 使用Range属性引用不连续的多列。 145
【例10-10】 使用Range属性引用单行。 145
【例10-11】 使用Range属性引用连续的多行。 145
【例10-12】 使用Range属性引用不连续的多行。 145
【例10-13】 通过定义名称引用单个名称定义的单元格区域。 146
【例10-14】 通过定义名称引用多个名称定义的单元格区域。 146
【例10-15】 使用Cells属性引用某个单元格。 146
【例10-16】 使用Cells属性引用连续的单元格区域。 147
【例10-17】 利用Rows属性引用连续的整行。 147
【例10-18】 利用Rows属性引用连续的整行:隔行设置单元格颜色。 147
【例10-19】 利用Rows属性引用不连续的整行。 147
【例10-20】 利用Columns属性引用连续的整列。 148
【例10-21】 利用Columns属性引用不连续的整列。 148
【例10-22】 选择当前工作表的全部单元格。 148
【例10-23】 显示活动单元格的地址。 148
【例10-24】 使用UsedRange属性引用已使用的单元格区域。 149
【例10-25】 引用被空白行和空白列包围的单元格区域。 149
【例10-26】 利用Offset属性动态引用某个单元格。 150
【例10-27】 利用Offset属性动态引用连续的单元格区域。 150
【例10-28】 利用Resize属性引用变化后的单元格区域。 150
【例10-29】 利用Union方法引用多个非连续单元格区域。 151
【例10-30】 引用多个单元格区域的交叉区域。 151
【例10-31】 引用已用单元格区域中有计算公式的所有单元格。 152
【例10-32】 引用工作表中所有计算公式的单元格。 153
【例10-33】 在隐藏的行或列中输入数据。 153
【例10-34】 引用指定单元格区域内的所有空白单元格。 153
【例10-35】 引用指定单元格区域内的所有设置有数据有效性的单元格。 154
【例10-36】 引用指定单元格区域内的所有可见单元格。 154
【例10-37】 引用指定单元格区域内的所有出现错误的单元格。 155
【例10-38】 引用指定单元格区域内有批注的单元格。 155
【例10-39】 引用指定单元格区域内所有设置有条件格式的单元格。 156
【例10-40】 获取已用单元格区域的地址。 156
【例10-41】 使用Address获取单元格地址的列标字母。 157
【例10-42】 使用Chr函数获取指定数字对应的列标字母。 157
【例10-43】 获取单元格区域的起始行号和终止行号。 157
【例10-44】 获取单元格区域的起始列号和终止列号。 158
【例10-45】 利用HasFormula属性判断给定单元格内是否输入了公式。 159
【例10-46】 利用字符串处理的方法判断单元格内是否输入了公式。 159
【例10-47】 判断指定单元格内是否输入了数组公式。 159
【例10-48】 获取单元格内的公式字符串。 160
【例10-49】 获取单元格的字体对象信息。 160
【例10-50】 获取单元格的内部对象信息。 161
【例10-51】 设置单元格的字体属性。 161
【例10-52】 设置单元格区域外边框。 162
【例10-53】 设置单元格区域的全部边框。 163
【例10-54】 删除单元格区域的全部边框。 163
【例10-55】 设置指定单元格的颜色和背景。 164
【例10-56】 设置单元格的有效性规则。 165
【例10-57】 为单元格设置或删除超链接。 167
【例10-58】 为单元格添加和删除批注。 167
【例10-59】 为单元格区域定义和删除名称。 168
【例10-60】 自动调整指定单元格区域的列宽和行高。 168
【例10-61】 设置指定单元格的行高和列宽。 168
【例10-62】 插入单元格。 171
【例10-63】 插入整行和整列。 171
【例10-64】 每隔3行插入1个空行。 171
【例10-65】 删除单元格。 172
【例10-66】 删除整行和整列。 172
【例10-67】 删除数据区域的所有空行。 173
【例10-68】 删除数据区域的全部空列。 173
【例10-69】 移动单元格。 174
【例10-70】 复制单元格的全部信息。 174
【例10-71】 只复制单元格的值。 175
【例10-72】 只复制单元格公式。 176
【例10-73】 只复制单元格的格式。 176
【例10-74】 只复制单元格批注。 176
【例10-75】 只复制单元格的有效性设置。 177
【例10-76】 为不同的单元格区域设置不同的保护密码。 177
【例10-77】 删除设置的分区保护。 178
【例10-78】 向单元格输入数值。 178
【例10-79】 向单元格输入字符串。 179
【例10-80】 向单元格输入数组公式。 179
【例10-81】 向单元格输入日期。 179
【例10-82】 向单元格输入时间。 180
【例10-83】 向单元格输入分数。 180
【例10-84】 向单元格输入邮政编码的两种方法。 181
【例10-85】 向指定的单元格区域输入连续值。 182
【例10-86】 快速向单元格区域输入连续的日期。 182
【例10-87】 快速向单元格区域输入具有固定日期间隔的日期。 183
【例10-88】 快速向某些单元格输入带小数点的数字。 183
【例10-89】 不激活工作表就向该工作表输入数据。 184
【例10-90】 同时为多个工作表的相同单元格区域输入相同的数据。 184
第11章 使用窗体 185
【例11-1】 更改窗体的标题文字。 188
【例11-2】 在运行程序时为窗体添加图片。 189
【例11-3】 改变窗体的大小。 191
【例11-4】 设置窗体外观。 193
【例11-5】 在装载窗体时就执行程序。 196
【例11-6】 在激活窗体时就执行程序。 196
【例11-7】 在单击时就执行程序。 197
【例11-8】 禁止使用窗体右上角的X按钮关闭窗体。 197
【例11-9】 将窗体显示在窗口的指定位置。 198
【例11-10】 利用Left属性和Top属性将窗体显示在窗口的指定位置。 199
【例11-11】 使窗体自动布满整个屏幕。 199
【例11-12】 隐藏和显示用户窗体的X按钮。 200
【例11-13】 将用户窗体的X按钮设置为有效和无效。 201
【例11-14】 为用户窗体添加最大化和最小化按钮。 202
【例11-15】 在启动工作簿时仅显示窗体,而不显示Excel界面。 203
【例11-16】 设计有上下滚动字幕的窗体。 203
【例11-17】 设计有左右滚动字幕的窗体。 204
【例11-18】 在激活窗体时就播放音乐。 205
【例11-19】 在窗体上插入Media Player控件来播放音乐。 205
【例11-20】 运行时创建窗体和控件并为其设计事件程序代码。 207
第12章 使用控件 210
【例12-1】 在程序运行时设置控件的共有属性。 213
【例12-2】 引用窗体上的某一类控件。 216
【例12-3】 引用窗体上的全部控件。 216
【例12-4】 获取窗体上所有控件的名称和类型。 216
【例12-5】 使用数组函数引用窗体上的控件。 217
【例12-6】 获取控件的有关信息。 217
【例12-7】 显示和隐藏控件。 218
【例12-8】 利用Enabled属性设置控件的可操作性。 218
【例12-9】 利用Locked属性设置控件的可操作性。 219
【例12-10】 当鼠标停留在控件上面时显示提示信息。 219
【例12-11】 当鼠标停留在控件上面时改变鼠标指针类型。 219
【例12-12】 当鼠标停留在控件上面时改变鼠标的图像。 220
【例12-13】 当鼠标停留在控件上面时改变控件颜色,离开时恢复默认颜色。 221
【例12-14】 利用标签制作进度条。 223
【例12-15】 当单击标签时就执行程序。 224
【例12-16】 设置文本框内字符的显示格式。 226
【例12-17】 限制文本框内输入的字符长度。 226
【例12-18】 限制文本框内的输入数据。 226
【例12-19】 不显示输入到文本框的内容。 227
【例12-20】 将文本框设置为自动换行。 227
【例12-21】 使文本框内字符在任意字符后换行。 228
【例12-22】 设置文本框为必须输入状态。 229
【例12-23】 将文本框限制为只能输入负号、数字和小数点。 229
【例12-24】 限制只能在文本框中输入字母。 230
【例12-25】 当修改文本框中内容时就执行程序。 230
【例12-26】 当文本框数据变更后就执行程序。 230
【例12-27】 在文本框中输入数据后就朗读出来。 230
【例12-28】 在文本框获得焦点时改变背景色。 231
【例12-29】 在单击按钮时就执行程序。 232
【例12-30】 在单击按钮时就朗读出提示信息。 232
【例12-31】 设置复选框的标题文字及对齐方式。 233
【例12-32】 判断复选框是否被选中。 233
【例12-33】 设置选项按钮的标题文字及对齐方式。 234
【例12-34】 能够同时选择两个以上的选项按钮。 234
【例12-35】 将框架设计为两条水平平行线或一条水平直线。 236
【例12-36】 将框架设计为两条垂直平行线或一条垂直直线。 236
【例12-37】 获取框架Frame1内的所有控件名称及其值。 236
【例12-38】 利用AddItem方法为复合框列表添加项目。 237
【例12-39】 利用RowSource属性为复合框ComboBox1添加项目。 237
【例12-40】 利用List属性为复合框设置项目。 238
【例12-41】 使用工作表中的数据,并利用List属性为复合框设置项目。 238
【例12-42】 利用Column属性为复合框列表添加项目。 238
【例12-43】 利用Value属性获取复合框的某条项目值。 239
【例12-44】 利用List属性获取复合框的某条项目值。 239
【例12-45】 利用Column属性获取复合框的某条项目值。 239
【例12-46】 利用数组获取复合框的某条项目值。 240
【例12-47】 利用RemoveItem方法将复合框内的某条项目删除。 241
【例12-48】 设置复合框的显示类型和行为。 241
【例12-49】 将复合框设置为必须选择或必须输入状态。 242
【例12-50】 在复合框的值发生改变时就执行程序。 242
【例12-51】 利用AddItem方法为列表框列表添加项目。 243
【例12-52】 利用RowSource属性为列表框ListBox1添加项目。 243
【例12-53】 利用List属性为列表框设置项目。 244
【例12-54】 利用Column属性为列表框列表添加项目。 245
【例12-55】 利用Value属性获取列表框的某条项目值。 245
【例12-56】 利用List属性获取列表框的某条项目值。 245
【例12-57】 利用Column属性获取列表框的某条项目值。 246
【例12-58】 利用Clear方法删除列表框的全部项目。 246
【例12-59】 利用RemoveItem方法将列表框内的某条项目删除。 247
【例12-60】 设置列表框为多选状态。 247
【例12-61】 在列表框的值发生改变时就执行程序。 248
【例12-62】 在单击列表框时就执行程序。 248
【例12-63】 使用图像控件显示图片。 249
【例12-64】 利用工作表数据为图像控件添加图片。 250
【例12-65】 实现旋转按钮与文本框的联动。 251
【例12-66】 实现滚动条与工作表滚动条的同步联动。 252
【例12-67】 利用滚动条进行颜色调整和配色。 252
【例12-68】 多页控件使用举例。 253
【例12-69】 切换按钮使用举例。 254
【例12-70】 利用标签条(TabStrip控件)动态显示数据。 255
【例12-71】 利用ProgressBar控件设置一个显示计算过程的进度条。 256
【例12-72】 利用ListView控件在窗体上制作报表。 257
【例12-73】 利用TreeView控件在窗体上显示多维数据。 259
【例12-74】 利用Spreadsheet控件在窗体上编辑数据。 261
【例12-75】 利用ChartSpace控件在窗体上绘制动态图表。 262
【例12-76】 利用ChartSpace控件在窗体上绘制动态图表。 263
【例12-77】 日历控件使用举例。 265
【例12-78】 DTPicker控件属性设置和事件使用练习。 266
【例12-79】 自动在工作表中插入ActiveX控件。 267
【例12-80】 在工作表中自动插入ActiveX控件对象并重命名。 268
【例12-81】 设置ActiveX控件的标题文字及字体属性。 269
【例12-82】 设置ActiveX控件的前景色和背景色。 270
【例12-83】 设置ActiveX控件的大小和位置。 270
【例12-84】 获取ActiveX控件的值。 271
【例12-85】 每单击一次按钮就执行不同的操作。 272
【例12-86】 为控件指定多个事件。 272
【例12-87】 将文本框类别化以控制输入数据。 273
第13章 操作菜单和工具栏 275
【例13-1】 获取Excel菜单栏信息。 276
【例13-2】 获取Excel【文件】菜单项信息。 277
【例13-3】 获取Excel【编辑】菜单项信息。 278
【例13-4】 获取Excel【视图】菜单项信息。 279
【例13-5】 获取Excel【插入】菜单项信息。 280
【例13-6】 获取Excel【格式】菜单项信息。 281
【例13-7】 获取Excel【工具】菜单项信息。 281
【例13-8】 获取Excel【数据】菜单项信息。 282
【例13-9】 获取Excel【窗口】菜单项信息。 283
【例13-10】 获取Excel所有工具栏信息清单。 284
【例13-11】 获取Excel标准工具栏信息。 285
【例13-12】 获取Excel格式工具栏信息。 286
【例13-13】 获取Excel命令按钮的Icon和FaceID。 287
【例13-14】 删除Excel菜单栏中的【帮助】子菜单。 289
【例13-15】 隐藏和恢复Excel的标准工具栏和
格式工具栏。 289
【例13-16】 在现有的菜单中添加或删除自定义菜单命令项。 290
【例13-17】 在Excel菜单栏中创建和删除自定义子菜单。 291
【例13-18】 改变Excel命令按钮的Icon。 292
【例13-19】 在菜单栏或工具栏中添加自定义命令按钮。 293
【例13-20】 在Excel的工具栏中创建一个自定义组合框命令按钮。 294
【例13-21】 在Excel的工具栏中创建一个自定义下拉命令按钮。 295
【例13-22】 创建自定义主菜单栏。 297
【例13-23】 创建和删除自定义工具栏。 299
【例13-24】 创建和删除由内置命令组成的自定义工具栏。 301
【例13-25】 为每个工作表设计不同的自定义工具栏。 302
【例13-26】 获取Excel的全部快捷菜单信息。 304
【例13-27】 为快捷菜单添加或删除菜单项。 305
【例13-28】 为快捷菜单添加和删除内置命令。 306
【例13-29】 为某些单元格区域创建一个全新的快捷菜单。 307
【例13-30】 为窗体控件创建自定义快捷菜单。 308
第14章 利用VBA处理工作表数据 310
【例14-1】 查询工作表中符合条件的数值和公式字符串。 311
【例14-2】 利用Find方法查询数值及公式结果。 312
【例14-3】 利用工作表函数Match查询数值及公式结果。 313
【例14-4】 利用工作表函数VLookup查询数值及公式结果。 313
【例14-5】 联合利用Find方法和Offset属性查询数值及公式结果。 314
【例14-6】 使用数据库函数DGet查询数值及公式结果。 314
【例14-7】 利用Like运算符进行模糊查询。 315
【例14-8】 从多个工作表或工作簿中查询数据。 315
【例14-9】 删除数据区域内的所有空白行。 316
【例14-10】 获取存在于两个工作表中相同数据的行数据。 316
【例14-11】 获取只存在于某个工作表中的行数据。 317
【例14-12】 从一个工作表中删除另一个工作表中存在的行数据。 318
【例14-13】 自动排序举例。 319
【例14-14】 自定义排序举例。 320
【例14-15】 先进行排序然后再恢复排序前的状态。 320
【例14-16】 执行自动筛选和撤销自动筛选。 322
【例14-17】 执行高级筛选和撤销高级筛选。 323
【例14-18】 执行高级筛选和撤销高级筛选。 323
【例14-19】 利用ADO+SQL进行复杂条件下的查询。 324
【例14-20】 利用ADO+SQL从工作簿的全部工作表中查询获取数据。 325
【例14-21】 利用ADO+SQL查询其他工作簿的数据。 326
【例14-22】 利用ADO+SQL对工作表数据进行复杂排序。 327
第15章 操作文件和文件夹 329
【例15-1】 利用Dir函数判断指定的文件夹是否存在。 330
【例15-2】 利用GetAttr函数获取文件夹的属性。 331
【例15-3】 使用MkDir语句创建文件夹。 331
【例15-4】 利用Name语句移动文件夹。 332
【例15-5】 利用Name语句更改文件夹名称。 332
【例15-6】 使用RmDir语句删除文件夹。 332
【例15-7】 使用Dir函数判断文件是否存在。 333
【例15-8】 获取文件的有关信息。 333
【例15-9】 使用FileCopy语句复制文件。 334
【例15-10】 利用Name语句移动文件。 334
【例15-11】 使用Kill语句删除文件。 335
【例15-12】 利用Name语句更改文件名。 335
【例15-13】 利用Dir函数和Name方法批量更改文件名。 335
【例15-14】 利用Dir函数和Kill方法批量删除文件。 336
【例15-15】 利用Application对象的FileSearch属性查找文件。 336
【例15-16】 利用FileSystemObject对象的GetFile方法获取文件的信息。 338
【例15-17】 使用FileExists方法检查文件是否存在。 338
【例15-18】 使用CopyFile方法复制文件。 339
【例15-19】 使用DeleteFile方法删除文件。 339
Excel VBA应用开发:技巧精华版
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!