图书介绍

Excel 2003高级VBA编程宝典PDF|Epub|txt|kindle电子书版本下载

Excel 2003高级VBA编程宝典
  • (美)John Walkenbach著;盖江南,王勇等译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121017857
  • 出版时间:2005
  • 标注页数:696页
  • 文件大小:193MB
  • 文件页数:728页
  • 主题词:电子表格系统,Excel 2003-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Excel 2003高级VBA编程宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 Excel基础知识1

第1章 Excel 2003的起源2

1.1 电子表格软件的简短历史2

1.1.1 最初的起源VisiCalc2

1.1.2 Lotus 1-2-32

1.1.3 Quattro Pro5

1.1.4 Microsoft Excel5

1.2 Excel对开发人员的重要性9

1.3 Excel在微软战略中的角色9

第2章 Excel概述11

2.1 关于对象11

2.2 工作簿12

2.2.1 工作表12

2.2.2 图表工作表13

2.2.3 XLM宏工作表13

2.2.4 Excel 5/95对话框编辑表14

2.3 Excel的用户界面14

2.3.1 菜单14

2.3.2 快捷菜单15

2.3.3 工具栏15

2.3.4 对话框16

2.3.5 拖放16

2.3.6 键盘快捷键17

2.3.7 智能标记17

2.3.8 任务窗格17

2.4 数据录入18

2.5 公式、函数和名称19

2.6 定制屏幕显示20

2.7 选择对象20

2.8 格式21

2.8.1 数字型格式21

2.8.2 样式型格式21

2.9 形状22

2.10 图表22

2.11 宏和编程23

2.12 数据库访问23

2.12.1 工作表数据库24

2.12.2 外部数据库24

2.13 Internet特性25

2.14 XML特性26

2.15 分析工具26

2.15.1 分级显示26

2.15.2 自动的分类汇总26

2.15.3 Analysis ToolPak26

2.15.4 数据透视表27

2.15.5 Solver28

2.16 加载宏28

2.17 兼容性28

2.18 保护选项28

2.18.1 保护公式以防被修改28

2.18.2 保护工作簿的结构29

2.18.3 用密码保护工作簿30

2.18.4 用密码保护VBA代码30

2.19 Excel的“帮助”系统31

第3章 公式的技巧32

3.1 公式简介32

3.2 计算公式32

3.3 单元格和单元格区域引用33

3.3.1 为什么使用不是相对的引用33

3.3.2 R1C1表示法34

3.3.3 引用其他的工作表或者工作簿35

3.4 使用名称36

3.4.1 命名单元格和单元格区域36

3.4.2 将名称应用于现有的引用36

3.4.3 交叉名称37

3.4.4 命名列和行38

3.4.5 名称的作用域38

3.4.6 命名常量38

3.4.7 命名公式39

3.4.8 命名对象40

3.5 公式错误41

3.6 数组公式41

3.6.1 一个数组公式的例子42

3.6.2 数组公式日历43

3.6.3 数组公式的优缺点43

3.7 计数和求和技巧43

3.7.1 使用COUNTIF或者SUMIF函数44

3.7.2 使用数组公式进行计数和求和44

3.7.3 其他计数工具45

3.8 使用日期和时间46

3.8.1 输入日期和时间46

3.8.2 使用1900年之前的日期46

3.9 创建大公式47

第4章 理解Excel的文件50

4.1 启动Excel50

4.2 所支持的电子表格文件格式51

4.2.1 Lotus 1-2-3电子表格文件52

4.2.2 Quattro Pro电子表格文件52

4.2.3 数据库文件格式52

4.2.4 文本文件格式53

4.2.5 其他文件格式53

4.3 用Excel编写的文件53

4.3.1 XLS文件54

4.3.2 工作区文件54

4.3.3 模板文件55

4.3.4 工具栏文件55

4.3.5 加载宏文件56

4.4 Excel和HTML56

4.4.1 Excel如何使用HTML56

4.4.2 增加难度57

4.4.3 创建交互式的HTML文件58

4.5 导入和导出XML文件59

4.5.1 什么是XML59

4.5.2 使用映射导入XML数据60

4.5.3 将XML数据导入到列表中62

4.5.4 从Excel导出XML数据63

4.6 注册表中的Excel设置63

4.6.1 关于注册表63

4.6.2 Excel的设置64

第2部分 Excel应用程序开发67

第5章 电子表格应用程序的内涵68

5.1 电子表格应用程序68

5.2 开发人员和终端用户69

5.2.1 谁是开发人员69

5.2.2 电子表格应用程序用户的分类70

5.2.3 电子表格应用程序的客户70

5.3 用电子表格应用程序解决问题71

5.4 基本的电子表格应用程序类型71

5.4.1 快捷但质量不高的电子表格应用程序72

5.4.2 自己创作、自己使用的电子表格应用程序72

5.4.3 单用户电子表格应用程序72

5.4.4 意大利面条式电子表格应用程序73

5.4.5 实用电子表格应用程序73

5.4.6 包含工作表函数的加载宏74

5.4.7 单元块预算式电子表格应用程序74

5.4.8 假设分析模型式电子表格应用程序74

5.4.9 数据存储和访问电子表格应用程序74

5.4.10 数据库前端电子表格应用程序75

5.4.11 统包式电子表格应用程序75

第6章 电子表格应用程序开发的基础76

6.1 确定用户需求76

6.2 规划满足用户需求的应用程序77

6.3 确定最合适的用户界面78

6.3.1 创建自定义的对话框79

6.3.2 在工作表上使用ActiveX控件79

6.3.3 自定义菜单80

6.3.4 自定义工具栏82

6.3.5 创建快捷键83

6.3.6 执行开发的成果83

6.4 使自己关心终端用户84

6.4.1 测试电子表格应用程序84

6.4.2 尽量完善电子表格应用程序的安全性85

6.4.3 使得电子表格应用程序比较美观和直观86

6.4.4 创建用户帮助系统87

6.4.5 编制有关开发成果的文档87

6.4.6 将电子表格应用程序分发给用户87

6.4.7 需要的时候更新电子表格应用程序88

6.5 其他开发问题88

6.5.1 用户安装的Excel版本88

6.5.2 语言问题89

6.5.3 系统速度89

6.5.4 视频模式89

第3部分 理解VBA91

第7章 VBA概述92

7.1 基本的背景92

7.2 关于VBA92

7.2.1 对象模型93

7.2.2 VBA与XLM的对比93

7.3 VBA基础知识94

7.4 Visual Basic编辑器概述96

7.4.1 激活VBE96

7.4.2 VBE窗口97

7.5 使用“工程资源浏览器”窗口98

7.5.1 添加新的VBA模块99

7.5.2 删除VBA模块99

7.5.3 导出和导入对象99

7.6 使用“代码”窗口100

7.6.1 最小化和最大化窗口100

7.6.2 存储VBA代码101

7.6.3 输入VBA代码101

7.7 定制VBE环境106

7.7.1 使用“编辑器”选项卡106

7.7.2 使用“编辑器格式”选项卡108

7.7.3 使用“通用”选项卡109

7.7.4 使用“可连接的”选项卡110

7.8 宏录制器111

7.8.1 宏录制器实际记录哪些内容111

7.8.2 相对模式还是绝对模式112

7.8.3 录制选项115

7.8.4 整理已录制的宏115

7.9 关于对象和集合117

7.9.1 对象层次结构117

7.9.2 关于集合118

7.9.3 引用对象118

7.10 属性和方法119

7.10.1 对象的属性119

7.10.2 对象的方法119

7.11 Comment对象示例121

7.11.1 查看有关Comment对象的帮助121

7.11.2 Comment对象的属性122

7.11.3 Comment对象的方法122

7.11.4 Comments集合123

7.11.5 关于Comment属性123

7.11.6 Comment对象中的对象124

7.11.7 确定单元格中是否含有Comment对象125

7.11.8 添加新的Comment对象125

7.11.9 一些有用的应用程序属性126

7.12 Range对象的使用127

7.12.1 Range属性128

7.12.2 Cells属性129

7.12.3 Offset属性130

7.13 关于对象131

7.13.1 基本的理念131

7.13.2 学习有关对象和属性的更多信息132

第8章 VBA编程基础135

8.1 VBA语言元素概览135

8.2 注释137

8.3 变量、数据类型和常量138

8.3.1 定义数据类型139

8.3.2 声明变量141

8.3.3 变量的作用域142

8.3.4 常量的使用145

8.3.5 字符串的使用146

8.3.6 日期的使用147

8.4 赋值语句148

8.5 数组149

8.5.1 声明数组149

8.5.2 声明多维数组149

8.6 对象变量150

8.7 用户定义数据类型151

8.8 内置函数152

8.9 处理对象和集合154

8.9.1 With-End With构造154

8.9.2 For Each-Next构造155

8.10 控制执行156

8.10.1 GoTo语句157

8.10.2 If-Then构造157

8.10.3 Select Case构造160

8.10.4 指令的循环块163

第9章 VBA的Sub过程169

9.1 关于过程169

9.1.1 声明Sub过程169

9.1.2 过程的作用域170

9.2 执行Sub过程171

9.2.1 用“运行子过程/用户窗体”命令执行过程172

9.2.2 从“宏”对话框执行过程172

9.2.3 用Ctrl键组合执行过程172

9.2.4 从自定义菜单执行过程173

9.2.5 从另一个过程执行过程175

9.2.6 从工具栏按钮执行过程178

9.2.7 通过单击对象执行过程179

9.2.8 当事件发生时执行过程180

9.2.9 从“立即窗口”执行过程180

9.3 向过程传递参数181

9.4 错误处理技术184

9.4.1 捕获错误184

9.4.2 错误处理示例185

9.5 使用Sub过程的实际例子187

9.5.1 目的187

9.5.2 工程需求188

9.5.3 已经了解的信息188

9.5.4 着手处理188

9.5.5 需要了解哪些信息189

9.5.6 初步的录制工作189

9.5.7 初始设置190

9.5.8 代码的编写191

9.5.9 排序过程的编写192

9.5.10 更多测试195

9.5.11 修复问题195

9.5.12 实用程序的可用性197

9.5.13 对工程进行评估197

第10章 创建Function过程199

10.1 Sub过程与Function过程对比199

10.2 为什么创建自定义的函数199

10.3 介绍性的函数示例200

10.3.1 一个自定义函数200

10.3.2 在工作表中使用函数200

10.3.3 在VBA过程中使用函数201

10.3.4 分析自定义函数202

10.4 Function过程202

10.4.1 声明函数203

10.4.2 函数的作用域203

10.4.3 执行Function过程204

10.5 Function过程的参数205

10.6 函数示例206

10.6.1 无参数的函数206

10.6.2 另一个无参数的函数206

10.6.3 接受一个参数的函数207

10.6.4 接受两个参数的函数209

10.6.5 接受数组参数的函数210

10.6.6 接受可选参数的函数211

10.6.7 返回VBA数组的函数212

10.6.8 返回错误值的函数214

10.6.9 接受不定数量的参数的函数215

10.7 模拟Excel的SUM函数216

10.8 调试函数218

10.9 使用“插入函数”对话框219

10.9.1 指定函数类别220

10.9.2 添加函数说明220

10.10 使用加载宏存储自定义的函数222

10.11 使用Windows API222

10.11.1 Windows API示例223

10.11.2 确定Windows目录223

10.11.3 检测Shift键224

10.11.4 了解更多有关API函数的信息225

第11章 VBA编程示例和技巧226

11.1 处理单元格区域226

11.1.1 复制单元格区域226

11.1.2 移动单元格区域227

11.1.3 复制大小可变的单元格区域228

11.1.4 选中或者识别各种类型的单元格区域229

11.1.5 提示输入单元格中的值230

11.1.6 在下一个空单元格内输入一个值231

11.1.7 暂停宏的运行以便获得用户选中的单元格区域232

11.1.8 计算选中的单元格的数目234

11.1.9 确定选中的单元格区域的类型234

11.1.10 有效地遍历选中的单元格区域235

11.1.11 删除所有空行237

11.1.12 确定单元格区域是否包含在另一个单元格区域内238

11.1.13 确定单元格的数据类型238

11.1.14 读写单元格区域239

11.1.15 给单元格区域写值的更好的方法240

11.1.16 传递一维数组中的内容242

11.1.17 将单元格区域传递给Variant类型的数组242

11.1.18 选中单元格区域中的最大值243

11.1.19 选中有某种特殊格式的所有单元格244

11.2 处理工作簿和工作表245

11.2.1 保存所有工作簿246

11.2.2 保存和关闭所有工作簿246

11.2.3 访问工作簿的属性246

11.2.4 同步工作表247

11.3 VBA技巧248

11.3.1 切换布尔类型的属性值248

11.3.2 确定打印的页面的数量249

11.3.3 显示日期和时间249

11.3.4 获得字体列表250

11.3.5 排序数组251

11.3.6 处理一系列文件252

11.4 用在代码中的一些有用的函数254

11.4.1 FileExists函数254

11.4.2 FileNameOnly函数254

11.4.3 PathExists函数255

11.4.4 RangeNameExists函数255

11.4.5 SheetExists函数255

11.4.6 WorkbookIsOpen函数255

11.4.7 检索已经关闭的工作簿中的值256

11.5 一些有用的工作表函数257

11.5.1 返回单元格的格式信息258

11.5.2 显示与保存和打印的文件有关的数据259

11.5.3 理解对象的父亲259

11.5.4 计算值介于两个值之间的单元格数目260

11.5.5 计算单元格区域中可见单元格的数目261

11.5.6 确定行或者列中最后一个非空的单元格261

11.5.7 字符串与模式匹配263

11.5.8 从字符串中提取第n个元素264

11.5.9 多功能的函数265

11.5.10 SHEETOFFSET函数266

11.5.11 返回所有工作表中数据的最大值266

11.5.12 返回没有重复的随机整数元素的数组267

11.5.13 随机化单元格区域269

11.6 Windows API调用270

11.6.1 确定文件的关联性270

11.6.2 确定默认打印机的信息271

11.6.3 确定当前的视频模式272

11.6.4 给应用程序添加声音273

11.6.5 读写注册表274

第4部分 用户窗体277

第12章 多种自定义对话框的方法278

12.1 创建用户窗体之前需要了解的内容278

12.2 使用输入框278

12.2.1 VBA的InputBox函数278

12.2.2 Excel的InputBox函数280

12.3 VBA的MsgBox函数281

12.4 Excel的GetOpenFilename方法284

12.5 Excel的GetSaveAsFilename方法287

12.6 提示输入目录名称287

12.6.1 使用Windows API函数选中目录288

12.6.2 使用FileDialog对象选中目录290

12.7 显示Excel的内置对话框290

12.7.1 使用Dialogs集合290

12.7.2 了解更多与内置对话框有关的信息292

12.7.3 用内置对话框时使用参数292

12.7.4 直接执行菜单项293

第13章 用户窗体概述294

13.1 Excel如何处理自定义对话框294

13.2 插入新的用户窗体294

13.3 往用户窗体上添加控件295

13.4 “工具箱”的控件296

13.4.1 复选框296

13.4.2 组合框296

13.4.3 命令按钮296

13.4.4 框架296

13.4.5 图像296

13.4.6 标签297

13.4.7 列表框297

13.4.8 多页297

13.4.9 选项按钮297

13.4.10 RefEdit297

13.4.11 滚动条297

13.4.12 数值调节钮297

13.4.13 TabStrip298

13.4.14 文本框298

13.4.15 切换按钮298

13.5 调整用户窗体的控件299

13.6 调整控件的属性300

13.6.1 使用“属性”窗口300

13.6.2 共同属性301

13.6.3 更多属性的信息301

13.6.4 适应键盘用户的需求301

13.7 显示和关闭用户窗体303

13.7.1 显示用户窗体303

13.7.2 关闭用户窗体304

13.7.3 关于事件处理程序305

13.8 创建用户窗体示例306

13.8.1 创建用户窗体306

13.8.2 编写代码显示对话框308

13.8.3 测试对话框308

13.8.4 添加事件处理程序309

13.8.5 验证数据的有效性310

13.8.6 完成的对话框作品311

13.9 理解用户窗体的事件311

13.9.1 了解事件311

13.9.2 用户窗体的事件312

13.9.3 数值调节钮的事件312

13.9.4 数值调节钮与文本框配对314

13.10 引用用户窗体的控件316

13.11 自定义“工具箱”317

13.11.1 更改图标或者提示文本317

13.11.2 添加新页317

13.11.3 自定义或者组合控件317

13.11.4 添加新的ActiveX控件318

13.12 创建用户窗体的模板318

13.13 用户窗体检验表319

第14章 用户窗体示例320

14.1 创建用户窗体式菜单320

14.1.1 在用户窗体中使用命令按钮320

14.1.2 在用户窗体中使用列表框321

14.2 从用户窗体选中单元格区域322

14.3 创建欢迎界面323

14.4 禁用用户窗体的关闭按钮324

14.5 改变用户窗体的大小325

14.6 从用户窗体缩放和滚动工作表326

14.7 列表框技巧328

14.7.1 关于列表框控件328

14.7.2 向列表框控件添加条目329

14.7.3 确定选中的条目332

14.7.4 确定选中的列表框中的多个条目332

14.7.5 单个列表框中的多个列表333

14.7.6 列表框条目的转移334

14.7.7 在列表框中移动条目335

14.7.8 使用多列的列表框控件336

14.7.9 使用列表框选中工作表中的行338

14.7.10 使用列表框激活工作表339

14.8 在用户窗体中使用多页控件341

第15章 用户窗体的高级技巧343

15.1 显示进度条343

15.1.1 创建独立的进度条344

15.1.2 使用多页控件显示进度条346

15.1.3 不用多页控件显示进度条347

15.2 创建向导348

15.2.1 为向导设置多页控件348

15.2.2 向向导用户窗体添加按钮349

15.2.3 编写向导按钮的程序349

15.2.4 编写向导中的相关性代码351

15.2.5 用向导执行任务352

15.3 模仿MsgBox函数353

15.3.1 MyMsgBox代码354

15.3.2 如何模仿MsgBox355

15.3.3 在模仿MsgBox函数的过程中使用MyMsgBox函数356

15.4 非模态用户窗体356

15.5 用一个事件处理程序处理多个用户窗体按钮358

15.6 在用户窗体中选择颜色360

15.7 在用户窗体中显示图表362

15.7.1 将图表保存为文件362

15.7.2 使用OWC的ChartSpace控件363

15.8 在用户窗体中显示电子表格366

15.8.1 使得Spreadsheet控件可用366

15.8.2 把Spreadsheet控件添加到用户窗体中366

15.8.3 使用OWC Spreadsheet控件的简单示例366

15.9 复杂的用户窗体Enhanced Data Form368

15.9.1 关于Enhanced DataForm369

15.9.2 安装Enhanced Data Form加载宏370

15.9.3 使用Enhanced Data Form370

第5部分 高级编程技巧371

第16章 用VBA开发Excel实用程序372

16.1 关于Excel实用程序372

16.2 使用VBA开发实用程序373

16.3 如何造就好的实用程序373

16.4 Text Tools剖析实用程序373

16.4.1 Text Tools的背景374

16.4.2 Text Tools的工程目标374

16.4.3 Text Tools实用程序的运作机理375

16.4.4 Text Tools工作簿375

16.4.5 Text Tools实用程序的用户窗体375

16.4.6 ThisWorkbook代码模块376

16.4.7 Module1 VBA模块378

16.4.8 UserForm1代码模块379

16.4.9 使得Text Tools实用程序更加有效率380

16.4.10 保存Text Tools实用程序的设置381

16.4.11 实现撤销操作382

16.4.12 事后分析工程383

16.4.13 理解Text Tools实用程序384

16.5 了解有关Excel实用程序的更多内容384

第17章 数据透视表386

17.1 介绍性数据透视表示例386

17.1.1 创建数据透视表386

17.1.2 检查录制的数据透视表代码388

17.1.3 整理录制的数据透视表代码388

17.2 创建更加复杂的数据透视表389

17.2.1 为更加复杂的数据透视表准备的数据389

17.2.2 生成数据透视表的代码390

17.2.3 更复杂的数据透视表的运作机理392

17.3 从外部数据库创建数据透视表392

17.4 创建多个数据透视表394

17.5 修改数据透视表396

第18章 图表398

18.1 关于图表398

18.1.1 图表的位置398

18.1.2 Chart对象模型399

18.2 录制图表宏400

18.2.1 图表生成宏录制器输出400

18.2.2 整理图表生成的宏录制器输出401

18.3 常用的VBA制图方法402

18.3.1 使用VBA激活图表402

18.3.2 使用VBA使得图表处于非活动状态404

18.3.3 确定图表是否处于活动状态404

18.3.4 从ChartObjects或者Charts集合中删除图表405

18.3.5 使用VBA应用图表的格式405

18.3.6 遍历所有图表406

18.3.7 调整ChartObject对象的大小和对齐ChartObject对象407

18.4 更多制图的示例408

18.4.1 在SERIES公式中使用名称408

18.4.2 使用VBA指定图表使用的数据410

18.4.3 使用VBA确定图表中使用的单元格区域412

18.4.4 使用VBA显示图表上的任意的数据标志415

18.4.5 在用户窗体上显示图表416

18.5 理解图表的事件418

18.5.1 使用图表事件的示例419

18.5.2 为嵌入图表启用事件421

18.5.3 在嵌入图表上使用图表事件423

18.6 VBA制图技巧425

18.6.1 在整个页面上打印嵌入图表425

18.6.2 创建静态图表425

18.6.3 用MouseOver事件显示文本426

18.6.4 动态图表428

18.6.5 创建内摆线图表429

18.6.6 创建时钟式图表430

18.7 不使用宏的制图技巧431

18.7.1 使用“自动筛选”特性控制数据系列431

18.7.2 在图表工作表上存储多个图表433

18.7.3 创建自我扩展式的图表433

18.7.4 创建交互式的图表438

第19章 理解Excel的事件442

19.1 Excel可以监视的事件类型442

19.2 应该了解的有关事件的信息442

19.2.1 理解事件的顺序443

19.2.2 在何处放置事件处理程序的过程443

19.2.3 禁用事件444

19.2.4 输入事件处理程序的代码445

19.2.5 使用参数的事件处理程序的过程446

19.3 工作簿级别的事件447

19.3.1 Open事件448

19.3.2 Activate事件449

19.3.3 SheetActivate事件449

19.3.4 NewSheet事件449

19.3.5 BeforeSave事件449

19.3.6 Deactivate事件450

19.3.7 BeforePrint事件450

19.3.8 BeforeClose事件451

19.4 工作表级别的事件452

19.4.1 Change事件453

19.4.2 监视特定的单元格区域的内容是否发生变化454

19.4.3 SelectionChange事件456

19.4.4 BeforeRightClick事件457

19.5 图表事件457

19.6 应用程序事件459

19.6.1 启用应用程序级别的事件460

19.6.2 确定何时打开工作簿460

19.6.3 监视应用程序级别的事件461

19.7 用户窗体事件462

19.8 没有与对象关联的事件463

19.8.1 OnTime事件463

19.8.2 OnKey事件465

第20章 与其他应用程序交互467

20.1 从Excel启动别的应用程序467

20.1.1 使用VBA的Shell函数467

20.1.2 使用Windows的ShellExecute API函数469

20.2 用Excel激活别的应用程序470

20.2.1 使用AppActivate470

20.2.2 激活某个Microsoft Office应用程序471

20.3 运行“控制面板”对话框471

20.4 在Excel中使用自动化472

20.4.1 使用Automation处理外部对象473

20.4.2 早期绑定与后期绑定473

20.4.3 后期绑定的简单示例475

20.4.4 从Excel控制Word476

20.4.5 从另一个应用程序控制Excel479

20.5 通过Outlook发送私人的电子邮件481

20.6 使用ADO482

20.7 从Excel发送电子邮件附件484

20.8 使用SendKeys484

第21章 创建和使用加载宏487

21.1 加载宏的概念487

21.1.1 加载宏与标准工作簿的比较487

21.1.2 创建加载宏的原因488

21.2 理解Excel的加载宏管理器489

21.3 创建加载宏490

21.4 加载宏示例491

21.4.1 为加载宏示例设置工作簿491

21.4.2 为加载宏示例测试工作簿491

21.4.3 为加载宏示例添加描述性信息491

21.4.4 创建加载宏492

21.4.5 安装加载宏493

21.4.6 发布加载宏494

21.4.7 修改加载宏494

21.5 对比XLA文件和XLS文件495

21.5.1 XLS和XLA文件大小和结构495

21.5.2 XLA文件的VBA集合成员495

21.5.3 XLS和XLA文件的可见性496

21.5.4 XLS和XLA文件中的工作表和图表工作表496

21.5.5 在加载宏中访问VBA过程497

21.6 用VBA处理加载宏499

21.6.1 理解AddIns集合499

21.6.2 AddIns对象属性500

21.6.3 AddIns对象事件503

21.7 优化加载宏的性能503

21.7.1 最大化加载宏中的代码执行速度503

21.7.2 控制加载宏的文件大小504

21.8 加载宏存在的特殊问题505

21.8.1 确保安装了加载宏505

21.8.2 从加载宏中引用其他的文件506

21.8.3 为加载宏检测使用的Excel版本是否正确506

第6部分 开发应用程序507

第22章 创建自定义工具栏508

22.1 关于命令栏508

22.2 工具栏的处理508

22.3 Excel如何处理工具栏509

22.3.1 保存工具栏509

22.3.2 当工具栏不能正常运行时510

22.4 手动处理工具栏和按钮510

22.4.1 关于命令栏自定义模式510

22.4.2 发布自定义工具栏513

22.5 处理CommandBars集合515

22.5.1 命令栏类型515

22.5.2 列出所有命令栏对象515

22.5.3 创建命令栏516

22.5.4 在VBA中引用命令栏517

22.5.5 使用VBA删除命令栏517

22.5.6 命令栏的属性518

22.5.7 引用命令栏中的控件522

22.5.8 列出命令栏中的控件523

22.5.9 列出所有工具栏上的所有控件523

22.5.10 给命令栏添加控件525

22.5.11 从命令栏中删除控件525

22.5.12 命令栏控件的属性525

第23章 创建自定义菜单534

23.1 关于Excel的菜单栏534

23.2 使用Excel的菜单可以完成哪些任务534

23.2.1 从专业术语角度理解Excel的菜单535

23.2.2 删除Excel菜单元素536

23.2.3 添加Excel菜单元素536

23.2.4 更改Excel菜单元素536

23.3 使用VBA自定义Excel菜单537

23.3.1 列出Excel菜单信息537

23.3.2 往菜单栏添加新的菜单539

23.3.3 从菜单栏中删除菜单541

23.3.4 往菜单添加菜单项541

23.3.5 显示菜单项的快捷键545

23.3.6 修复重新设置了的菜单546

23.4 处理事件的菜单程序设计547

23.4.1 自动添加和删除菜单547

23.4.2 禁用或者隐藏菜单548

23.4.3 处理选中的菜单项549

23.5 创建自定义菜单的简便方法551

23.6 创建“工作表菜单栏”的替代品553

23.7 处理快捷菜单555

23.7.1 往快捷菜单添加菜单项556

23.7.2 从快捷菜单中删除菜单项557

23.7.3 禁用快捷菜单项557

23.7.4 禁用快捷菜单557

23.7.5 重新设置快捷菜单558

23.7.6 创建新的快捷菜单558

第24章 为应用程序提供帮助文档561

24.1 为应用程序提供帮助561

24.2 使用Excel组件的帮助系统563

24.2.1 为帮助系统使用单元格组件563

24.2.2 为帮助系统使用文本框563

24.2.3 使用工作表显示帮助文本564

24.2.4 在用户窗体中显示帮助565

24.2.5 使用“Office助手”显示帮助567

24.3 在用户窗体中模拟“这是什么?”帮助569

24.4 使用HTMLHelp系统570

24.5 将帮助文件与应用程序关联起来571

24.6 将帮助主题与某个VBA函数关联起来572

24.7 显示HTMLHelp文件的其他方法573

24.7.1 使用Help方法573

24.7.2 从消息框中显示帮助573

24.7.3 从输入框中显示帮助574

第25章 开发面向用户的应用程序575

25.1 什么是面向用户的应用程序575

25.2 Loan Amortization Wizard575

25.2.1 使用Loan Amortization Wizard应用程序575

25.2.2 Loan Amortization Wizard的工作簿结构577

25.2.3 Loan Amortization Wizard的运作原理578

25.2.4 增强Loan Amortization Wizard的潜能581

25.3 应用程序开发概念582

第7部分 其他主题583

第26章 兼容性问题584

26.1 什么是兼容性584

26.2 兼容性问题的种类585

26.3 Excel支持的文件格式585

26.4 避免使用新特性586

26.5 能够在Mac机器上运行吗587

26.6 创建国际通用的应用程序588

26.6.1 多语种应用程序589

26.6.2 VBA语言考虑事项590

26.6.3 使用本地属性590

26.6.4 识别系统设置590

26.6.5 日期和时间设置592

第27章 用VBA处理文件593

27.1 执行常见的文件操作593

27.1.1 使用VBA的有关文件的命令593

27.1.2 使用FileSearch对象595

27.1.3 使用FileSystemObject对象597

27.1.4 定位包含特定文本的文件599

27.2 处理文本文件599

27.2.1 打开文本文件600

27.2.2 读文本文件601

27.2.3 写文本文件601

27.2.4 获得文件编号601

27.2.5 确定或者设置文件的位置601

27.2.6 读写文本文件的语句602

27.3 文本文件处理示例602

27.3.1 将数据导入到文本文件中602

27.3.2 将单元格区域导出到文本文件603

27.3.3 将文本文件的内容导入到单元格区域中604

27.3.4 记录Excel日志的用法605

27.3.5 筛选文本文件606

27.3.6 导入多于256列的数据606

27.3.7 导出单元格区域到HTML格式的文件608

27.3.8 导出单元格区域到XML格式的文件610

第28章 处理VB组件613

28.1 IDE概述613

28.2 IDE对象模型614

28.3 显示VBA工程中的所有组件617

28.4 对模块进行更改618

28.5 使用VBA来编写VBA代码620

28.6 在设计时往用户窗体上添加控件621

28.6.1 设计时与运行时对用户窗体处理的比较622

28.6.2 在设计时添加100个命令按钮623

28.7 通过编程创建用户窗体624

28.7.1 简单的运行时用户窗体的示例624

28.7.2 有用的动态用户窗体示例626

第29章 理解类模块631

29.1 什么是类模块631

29.2 创建NumLock类632

29.2.1 插入类模块632

29.2.2 添加VBA代码到类模块中632

29.2.3 使用NumLock类635

29.3 更多有关类模块的信息636

29.3.1 命名对象类636

29.3.2 对对象的属性进行编程636

29.3.3 对对象的方法进行编程637

29.3.4 类模块事件638

29.4 一个CSV文件类638

29.4.1 CSVFileClass类模块的类模块级别的变量638

29.4.2 CSVFileClass类模块的属性过程639

29.4.3 CSVFileClass类模块的方法过程639

29.4.4 使用CSVFileClass对象641

第30章 有关Excel编程的常见问题643

30.1 一般的Excel问题643

30.1.1 为什么Excel有两种宏语言643

30.1.2 需要发布工作簿给仍然使用Excel 4的某些人,有办法将动作录制到某个XLM宏中吗643

30.1.3 在Excel 97以及更高的版本中还能运行为更早的Excel版本而编写的XLM宏吗643

30.1.4 能够找到将Excel 4宏转换为VBA宏的第三方实用程序吗643

30.1.5 能够从Excel 4.0 XLM宏调用VBA过程吗643

30.1.6 能够自动将Lotus 1-2-3或者QuattroPro宏转换为VBA宏吗644

30.1.7 在哪里可以找到VBA代码的示例644

30.1.8 有将Excel应用程序转换成独立的EXE文件的实用程序吗644

30.1.9 如何在单元格中添加一个下拉列表,使得用户可以从这个列表中选择某个值644

30.1.10 如果列表存储在活动工作簿中的另一个工作表内,还可以使用这种下拉列表方法吗644

30.1.11 使用ApplicationCalculation将计算模式设置为手动。然而,这看来会影响所有的工作簿而不仅仅是活动工作簿644

30.1.12 如何才能增加工作表中的列数644

30.1.13 如何才能增加工作表中的行数645

30.1.14 能改变工作表标签的颜色吗645

30.1.15 能改变工作表标签的字体吗645

30.1.16 能够改变单元格批注的默认字体和颜色吗645

30.1.17 能够在Excel中播放声音吗645

30.1.18 当打开工作簿时,Excel询问是否要更新链接,搜索了所有的公式之后,在这个工作簿中都找不到任何链接,这是bug吗645

30.1.19 每次启动Excel都崩溃645

30.1.20 在页眉如何打印出工作簿的完整路径和文件名646

30.2 有关Visual Basic编辑器的问题646

30.2.1 在Excel 95中,VBA模块还在工作簿中。当从Excel 97或者更高的版本中打开这个文件时,却看不到这些VBA模块了646

30.2.2 能够使用VBA宏录制器录制所有的宏吗646

30.2.3 Excel 95具有“在标记处录制”特性,利用该特性可以从现有宏中的某个特殊位置开始录制宏。这个特性仍然有用吗646

30.2.4 有一些宏比较通用,想让它们在任何时候都能够用,最好采用哪种办法647

30.2.5 找不到“个人宏工作簿”,它在哪里647

30.2.6 用密码锁定了VBA工程,但是却忘记了命名。有什么办法可以解除锁定647

30.2.7 如何编写宏来更改工程的密码647

30.2.8 当插入新的模块时,总是从Option Explicit代码行开始。这是为什么647

30.2.9 为什么VBA代码以不同的颜色显示?能改变这些颜色吗647

30.2.10 能用VBA代码删除VBA模块吗647

30.2.11 在Excel2000中编写了一个宏,这个宏往VB工程中添加一些VBA代码。当在Excel 2003中运行这个宏的时候,就会得到一条消息。这是怎么回事648

30.2.12 如何编写宏来更改用户的宏安全性设置?希望在打开编写的应用程序时避免出现“工作簿中包含宏”消息648

30.2.13 当打开工作簿时,得到标准的宏警告消息。可是,删除了这个工作簿中包含的所有宏。这是病毒吗648

30.2.14 不理解保护工作表时UserInterfaceOnly选项的运作原理648

30.2.15 如何辨别工作簿是否含有宏病毒648

30.2.16 在VBA中使用符号(&)时遇到麻烦。当要连接两个字符串时,就会得到错误消息648

30.2.17 VBA换行连续字符(下划线)不起作用648

30.2.18 删除大量的VBA代码之后,发现XLS文件的大小并没有相应缩减,为什么649

30.2.19 给很多用户发布一个XLS应用程序。在某些机器上,其中的VBA错误处理过程不起作用。为什么649

30.3 过程649

30.3.1 VBA过程和宏之间有什么区别649

30.3.2 什么是过程649

30.3.3 什么是Variant数据类型649

30.3.4 Variant数组和Variant元素构成的数组之间有什么区别649

30.3.5 什么是类型定义字符650

30.3.6 编写了一个VBA函数,当从另一个过程调用它时运行得很好。但是当在工作表公式中使用它时却运行不了。这是怎么回事650

30.3.7 想创建一个根据所键入的数据自动更改单元格格式的过程。例如,如果输入的值大于0,那么单元格的背景颜色就变成红色。这可能做到吗650

30.3.8 “条件格式”特性很有用,但是更喜欢当在单元格中输入数据时执行其他类型的操作650

30.3.9 可以监视其他类型的事件吗650

30.3.10 试着输入了一个事件过程(Sub Workbook_Open),但是当打开工作簿时却没有执行这个过程。这是为什么651

30.3.11 可以为某个特殊的工作簿编写事件过程,但是能够为任意打开的工作簿编写事件过程吗651

30.3.12 对在Excel中创建公式非常熟悉。VBA也使用了同样的机制和逻辑运算符吗651

30.3.13 如何在别的工作簿中执行过程651

30.3.14 使用VBA创建了几个自定义函数。想在工作表公式中使用这些函数,但是发现在函数名称前加上工作簿的名称极其不方便。还有别的办法吗651

30.3.15 希望在每次启动时加载某个特殊的工作簿。还希望自动执行这个工作簿中的某个宏。是不是不大可能做到652

30.3.16 有一个工作簿使用了Workbook_Open过程。有没有办法避免当打开这个工作簿时执行这个过程呢652

30.3.17 VBA过程能够访问没有打开的工作簿中的某个单元格的值吗652

30.3.18 当从VBA关闭工作簿时,如何避免显示“保存文件”的提示652

30.3.19 如何设置才能使得宏每小时运行一次652

30.3.20 如何防止在宏列表中显示某个宏652

30.3.21 可以将图表保存为GIF文件吗653

30.3.22 某个VBA过程中的变量能在其他的VBA过程中使用吗?可以在别的模块中使用另外一个模块中的过程吗?可以在别的工作簿中使用另外一个工作簿中的过程吗653

30.4 函数653

30.4.1 创建了一个自定义的工作表函数。当用“插入函数”对话框访问这种函数时,出现“没有帮助信息”。如何才能使得“插入函数”对话框显示关于这个函数的说明呢653

30.4.2 还能够在“插入函数”对话框中显示出自定义函数的参数帮助信息吗653

30.4.3 自定义工作表函数出现在“插入函数”对话框的“用户定义”类别中。怎么才能使得自定义的函数出现在别的函数类别中呢653

30.4.4 如何创建新的函数类别654

30.4.5 创建了一个将用在工作表公式中的自定义函数。如果用户输入的参数值不合适,怎么才能使得函数返回真正的错误值(#VALUE!)654

30.4.6 如何强制重算使用了自定义工作表函数的公式654

30.4.7 能在VBA代码中使用Excel的内置工作表函数吗654

30.4.8 Excel 95不支持WorksheetFunction方法。这意味着编写的Excel 2002应用程序不能兼容于Excel 95吗655

30.4.9 在VBA代码中能够使用Analysis ToolPak的函数吗655

30.4.10 有办法在消息框的文本中强制换行吗655

30.5 对象、属性、方法和事件655

30.5.1 不理解对象的概念,有可以使用的Excel对象的列表吗655

30.5.2 有太多属性和方法可以使用。如何从中找出适用于某个特殊对象的方法和属性呢655

30.5.3 集合的概念是什么?集合是对象吗656

30.5.4 当在VBA代码中引用工作表时,就会得到“下标越界”的错误。没有使用任何下标,怎么会出现这种错误呢656

30.5.5 如何避免用户的鼠标指针滚动到工作表的外部656

30.5.6 Select和Application.Goto之间有什么区别656

30.5.7 激活单元格区域和选中单元格区域之间有什么区别656

30.5.8 有没有快速办法可以删除工作表的所有值,但是保持公式原封不动657

30.5.9 知道如何编写VBA指令通过使用单元格地址来选中某个单元格区域,但是如果只知道单元格区域的行号和列号,又该如何编写VBA指令来选中单元格区域呢657

30.5.10 有退出Excel的VBA命令吗?当试着录制“文件”?“退出”命令时,还没有看到它生成的代码Excel就关闭了657

30.5.11 怎么关闭运行宏时的屏幕更新动作657

30.5.12 在VBA中创建单元格区域名称的最简单的方法是什么657

30.5.13 如何确定某个特殊的单元格或者单元格区域是否有名称657

30.5.14 可以禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮吗658

30.5.15 宏在运行的时候能够在状态栏中显示消息吗?编写了一个很长代码的宏,如果能在状态栏中显示它的运行进度就好了658

30.5.16 录制了一个VBA宏,它复制某个单元格区域并将其粘贴到别的区域中。这个宏使用了Select方法。还有更加有效率的方式进行复制粘贴吗658

30.5.17 没有找到排序VBA数组的方法。只能先把值复制到工作表中,然后再使用Range.Sort方法吗658

30.5.18 宏只对选中的单元格起作用,但是如果选中了别的内容(比如图表),则会运行失败。如何能确保选中单元格区域了呢659

30.5.19 如何确定图表是否处于活动状态659

30.5.20 VBA宏要计算用户选中的行数。当选中不相邻的行时,使用Selection.Rows.Count不起作用。这是bug吗659

30.5.21 使用Excel创建发票,能生成惟一的发票编号吗659

30.5.22 想使得某个工作簿一直保持可见,这样别的应用程序窗口就不能隐藏该工作簿了,有这种属性吗660

30.5.23 如何阻止Excel在运行时显示消息?例如,下面将消除宏删除工作表时所出现的消息660

30.5.24 可以用VBA指令选中某一列或者某一行中的最后一项吗?一般而言,可以使用Ctrl+Shift+下箭头键或者Ctrl+Shift+右箭头键组合,但是用宏应该怎么办呢?660

30.5.25 如何确定某个特殊列中的最后一个非空的单元格660

30.5.26 如果A65536单元格不为空,上述指令就不会起作用660

30.5.27 VBA引用可以变得非常长,特别是在需要通过引用工作表和工作簿使得对对象的引用符合标准时。能缩减这种引用的长度吗661

30.5.28 如果不知道数组包含多少元素,可以声明数组吗661

30.5.29 能允许用户撤销宏吗661

30.5.30 有一个1-2-3宏能够暂停运行使得用户可以在某个特定的单元格中输入数据。如何在VBA宏中获得同样的效果呢661

30.5.31 VBA有一个InputBox函数,但是还有一个Application对象的InputBox方法,两者一样吗661

30.5.32 当使用RGB函数指定颜色后,有时候颜色不对。为什么662

30.5.33 编写VBA指令创建一个公式,如果需要在引号引起来的文本中插入引号("),该怎么办呢662

30.5.34 创建了一个数组,但是数组中的第1个元素却成了第2个元素。这是为什么662

30.5.35 希望VBA代码运行的速度尽可能快,有什么建议662

30.6 用户窗体662

30.6.1 只需要少量的信息,而使用用户窗体似乎有些大材小用,有别的办法吗663

30.6.2 用户窗体上有12个命令按钮。如何指定当单击其中任意一个按钮时执行某一个宏663

30.6.3 如何在用户窗体中显示图表663

30.6.4 如何从用户窗体的标题栏上删除“关闭”按钮,不希望用户单击这个按钮来关闭窗体663

30.6.5 创建了一个用户窗体,其中的控件用ControlSource属性链接到了工作表上的单元格。这是最佳的办法吗663

30.6.6 能为用户窗体创建一个控件数组吗?Visual Basic可以这么做,但是不知道在Excel VBA中如何做663

30.6.7 隐藏用户窗体和卸载用户窗体之间有区别吗664

30.6.8 做其他事情时如何保持用户窗体的打开状态664

30.6.9 在编写UserForml.Show vbModeless时,Excel 97出现一个编译错误。如何在Excel 2000以及更高的版本中使得窗体成为无模式的,而同时使其在Excel 97中保持模态设置664

30.6.10 想在执行耗费长时间的过程的同时显示一个进度条,就像在安装软件时看到的那样。该怎么做呢664

30.6.11 如何使用Excel的绘图工具在用户窗体上创建简单的图形665

30.6.12 如何才能在用户窗体上产生文件及其目录的列表,以便用户可以从这个列表中选择文件呢665

30.6.13 想把两个字符串连接起来并将它们显示在一个列表框控件中。但是在实现的时候,对不齐这些字符串。怎么才能使得字符串之间具有相等的间距呢665

30.6.14 想用条目填充列表框或者组合框控件,有没有简单的办法665

30.6.15 能从VBA显示内置的Excel对话框吗665

30.6.16 尝试了上一个问题中描述的方法,但是却收到错误消息。这是为什么665

30.6.17 每次创建用户窗体时,都要重复添加“确定”按钮和“取消”按钮的步骤。有没有办法可以使得这些控件自动出现呢665

30.6.18 可以创建不带标题栏的用户窗体吗666

30.6.19 录制了一个打印文件的VBA宏。然而,好像无法在代码中提供文件名。无论怎么试,都会得到希望提供文件名的提示666

30.6.20 当在用户窗体上单击某个按钮时,没有任何反应。哪里做错了666

30.6.21 不管视频显示器的分辨率是多少,能创建大小一样的用户窗体吗666

30.6.22 可以创建用户窗体使得用户能够通过指示选中工作表的某个单元格区域吗666

30.6.23 能改变用户窗体的启动位置吗666

30.6.24 可以往工作簿中添加Excel 5/95对话框工作表吗666

30.7 加载宏666

30.7.1 从哪里可以获得Excel加载宏667

30.7.2 如何安装加载宏667

30.7.3 当从Excel的“加载宏”对话框安装加载宏时,加载宏没有名称或者说明。如何给加载宏添加说明呢667

30.7.4 有一些加载宏不再使用,如何才能从“加载宏”对话框的“可用加载宏”列表中将它们删除呢667

30.7.5 如何创建加载宏667

30.7.6 想创建一个加载宏,但是“保存类型”下拉列表中没有提供加载宏方面的选项667

30.7.7 应该将所有必要的工作簿转换为加载宏吗667

30.7.8 需要将工作簿保存两个副本(XLS版本和XLA版本)吗668

30.7.9 如何在创建加载宏之后对其进行修改呢668

30.7.10 XLS文件与依据XLS文件创建的XLA文件之间有什么区别?XLA版本是编译后的结果吗?XLA版本是否运行得更快呢668

30.7.11 如何保护加载宏的代码,使得别人查看不到它的代码668

30.7.12 XLA加载宏安全吗?换句话说,如果发布了XLA文件,能保证没有人能够查看其中的代码吗668

30.8 命令按钮668

30.8.1 Excel 95拥有一个很方便的菜单编辑器,但是Excel 97以及更高的版本中却没有这种菜单编辑器。该怎么办668

30.8.2 能编辑用Excel 95的菜单编辑器创建的菜单吗668

30.8.3 当用“自定义”对话框更改菜单时,菜单的改变是永久性的。如何才能使得菜单的更改只应用于一个工作簿呢669

30.8.4 知道可以使用Faceld属性给工具栏控件添加图像,但是如何找到对应于某个特殊图像的Faceld值呢669

30.8.5 往工作簿附加了一个新版的工具栏,但是Excel继续使用老式的版本,如何才能使用新版本的工具栏呢669

30.8.6 已经对Excel的工具栏做了大量的修改。如何才能将所有这些工具栏恢复成原来的状态呢669

30.8.7 如何使得自定义菜单只在某个特殊的工作簿处于活动状态时才显示出来669

30.8.8 如何在工具栏上的两个按钮之间添加分隔栏669

30.8.9 如何在菜单项旁边显示选中标记670

30.8.10 不小心删除了工作表菜单中的某些项,但是找不回来,重新启动Excel也不能修复670

30.8.11 如何禁用所有单击右键出现的快捷菜单670

30.8.12 能禁用当用户在工具栏上单击鼠标右键出现的工具栏列表吗670

第8部分 附录671

附录A Excel在线资源672

附录B VBA语句和函数引用677

附录C VBA错误代码684

附录D 光盘上的内容687

热门推荐