《Excel 2007 VBA与宏完全剖析》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)杰莱(Jelen.B.),(美)斯太德(Syrstad.T.)著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:7115178585
  • 页数:520 页
图书介绍:本书介绍了大量经过实践检验的技巧,帮您迅速提高使用VBA开发Excel宏的技能,避免手工汇总数据和创建报表,从而节省大量宝贵的时间。

第1章 使用VBA发挥Excel的威力 1

1.1 Excel的威力 1

1.2 进入壁垒 1

1.3 宏录制器不管用 1

1.3.1 Visual Basic并不像BASIC 2

1.3.2 VBA非常容易上手 2

1.3.3 Excel VBA值得学习 2

1.4 熟悉“开发工具”选项卡 2

1.5 宏安全性 3

1.5.1 添加受信任位置 3

1.5.2 使用宏设置启用不在受信任位置的工作簿中的宏 5

1.5.3 使用设置“禁用所有宏,并发出通知” 6

1.6 录制和存储宏 6

1.7 运行宏 7

1.7.1 创建宏按钮 7

1.7.2 将宏关联到窗体控件、文本框或形状 8

1.8 使用Excel 2007新增的文件类型 9

1.9 了解Visual Basic编辑器 10

1.9.1 Visual Basic编辑器设置 10

1.9.2 工程资源管理器 11

1.9.3 属性窗口 12

1.10 了解宏录制器的缺点 12

1.10.1 准备录制宏 13

1.10.2 录制宏 14

1.10.3 在编程窗口中查看代码 14

1.10.4 其他时间运行该宏时得到意外的结果 16

1.10.5 一种可能的解决方案:在录制时使用相对引用 16

第2章 VBA简介 21

2.1 VBA是一种面向对象语言 21

2.2 VBA语言的组成部分 22

2.3 VBA学起来并不难 24

2.3.1 VBA帮助文件——使用F1键获取帮助 24

2.3.2 使用帮助主题 26

2.4 查看录制的宏代码——使用Visual Basic编辑器和帮助 27

2.4.1 可选参数 28

2.4.2 预定义常量 28

2.4.3 可返回对象的属性 32

2.5 使用调试工具帮助理解录制的代码 33

2.5.1 步进执行代码 33

2.5.2 另一个调试选项——断点 35

2.5.3 在代码中向前或向后移动 36

2.5.4 不逐句运行每行代码 36

2.5.5 在逐句执行代码时进行查询 36

2.5.6 使用监视设置断点 40

2.5.7 监视对象 41

2.6 所有对象、方法和属性的终极参考信息 41

2.7 整理代码的5项技巧 43

2.7.1 技巧1:不要选择任何单元格 43

2.7.2 技巧2:从区域底部开始查找最后一行 44

2.7.3 技巧3:使用变量避免硬编码行和公式 45

2.7.4 技巧4:在一条语句中进行复制和粘贴 45

2.7.5 技巧5:使用With...End With对相同的单元格或区域执行多项操作 45

2.8 综合应用——修复录制的代码 46

第3章 引用区域 49

3.1 Range对象 49

3.2 使用选择的左上角和右下角指定区域 50

3.3 命名区域 50

3.4 引用区域的快捷方式 50

3.5 引用其他工作表中的区域 50

3.6 引用相对于其他区域的区域 51

3.7 使用Cells属性选择区域 52

3.8 使用Offset属性引用区域 53

3.9 使用Resize属性修改区域的大小 54

3.10 使用Columrs和Rows属性指定区域 55

3.11 使用Union方法合并多个区域 55

3.12 使用Intersect方法根据重叠区域创建新区域 56

3.13 使用IsEmpty函数检查单元格是否为空 56

3.14 使用CurrentRegion属性快速选择数据区域 57

3.15 使用区域集合返回非连续区域 59

3.16 引用数据表 60

第4章 用户定义的函数 61

4.1 创建用户定义的函数 61

4.2 自定义函数示例 62

4.3 共享UDF 63

4.4 很有用的自定义函数 63

4.4.1 获取工作簿的名称 64

4.4.2 获取当前工作簿的名称和文件路径 64

4.4.3 检查工作簿是否打开 64

4.4.4 检查工作表是否包含在打开的工作簿中 65

4.4.5 统计文件夹中的工作簿数量 65

4.4.6 获取UserID 66

4.4.7 检索最后一次保存的日期和时间 67

4.4.8 获取固定不变的日期和时间 68

4.4.9 验证电子邮件地址 68

4.4.10 根据内部颜色对单元格求和 70

4.4.11 统计非重复值的数量 70

4.4.12 删除区域中重复的值 71

4.4.13 在区域中查找第一个非空单元格 73

4.4.14 替换多个字符 73

4.4.15 从文本中获取数字 74

4.4.16 将星期编号转换为日期 75

4.4.17 从用分隔符分隔的字符串中提取值 76

4.4.18 排序并拼接 76

4.4.19 对数字和字母进行排序 77

4.4.20 在文本中搜索字符串 79

4.4.21 颠倒单元格内容的顺序 79

4.4.22 多个最大值 80

4.4.23 返回链接的地址 81

4.4.24 返回单元格地址的列字母 81

4.4.25 静态随机 81

4.4.26 将Select Case用于工作表 82

第5章 循环和流程控制 83

5.1 For...Next循环 83

5.1.1 在For语句中使用变量 85

5.1.2 For...Next循环的变体 86

5.1.3 在满足特定条件时提早退出循环 87

5.1.4 嵌套循环 87

5.2 Do循环 88

5.2.1 在Do循环中使用While或Until子句 91

5.2.2 While...Wend循环 92

5.3 VBA循环:For Each 92

5.3.1 对象变量 93

5.3.2 遍历文件夹中的所有文件 94

5.4 流程控制:使用If...Then...Else和Select Case 95

5.4.1 基本流程控制:if...Then...Else 95

5.4.2 条件 96

5.4.3 If...Then...Else...End If 96

5.4.4 使用If...Else If...End If检测多个条件 97

5.4.5 使用Select Case...End Select检测多个条件 97

5.4.6 在Case语句中使用复杂表达式 98

5.4.7 嵌套If语句 98

第6章 R1C1公式 101

6.1 引用单元格:A1和R1C1引用样式之比较 101

6.2 切换到R1C1引用样式 102

6.3 Excel公式创造的奇迹 103

6.3.1 输入公式一次并复制多次 103

6.3.2 这并不神奇 104

6.3.3 在VBA中采用A1与RICl样式之比较 104

6.4 R1C1引用样式简介 105

6.4.1 使用R1C1相对引用 105

6.4.2 使用R1C1绝对引用 106

6.4.3 使用R1C1混合引用 106

6.4.4 使用R1C1引用样式整行或整列 107

6.4.5 使用单个R1C1公式替换多个A1公式 107

6.4.6 记住列字母对应的列号 108

6.5 条件格式必须使用R1C1引用 109

6.5.1 通过用户界面设置条件格式 109

6.5.2 使用VBA设置条件格式 111

6.5.3 找出G列中最大的值 112

6.6 数组公式必须是R1C1公式 113

第7章 Excel 2007新增和修改过的功能 115

7.1 如果Excel用户界面不同,则VBA也不同 115

7.1.1 选项卡 115

7.1.2 图表 115

7.1.3 数据透视表 116

7.1.4 条件格式 116

7.1.5 数据表 117

7.1.6 排序 117

7.1.7 SmartArt 117

7.2 宏录制器不记录在以前的版本中记录的操作 117

7.3 学习新的对象和方法 119

7.4 兼容模式 120

7.4.1 Version 120

7.4.2 Excel8CompatibilityMode 120

第8章 使用VBA创建和操作名称 122

8.1 Excel名称 122

8.2 全局名称和局部名称 122

8.3 添加名称 123

8.4 删除名称 125

8.5 添加备注 125

8.6 名称类型 126

8.6.1 公式 126

8.6.2 字符串 126

8.6.3 数字 128

8.6.4 数据表 128

8.6.5 让名称指向数组 129

8.6.6 保留名称 129

8.7 隐藏名称 130

8.8 确定名称是否存在 130

第9章 事件编程 133

9.1 事件级别 133

9.2 使用事件 134

9.2.1 事件参数 134

9.2.2 启用事件 134

9.3 工作簿事件 135

9.3.1 Workbook_Activate() 135

9.3.2 Workbook_Deactivate() 135

9.3.3 Workbook_Open() 135

9.3.4 Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancel As Boolean) 136

9.3.5 Workbook_BeforePrint(Cancel As Boolean) 136

9.3.6 Workbook_BeforeClose(Cancel As Boolean) 137

9.3.7 Workbook_NewSheet(ByVal ShAs Object) 137

9.3.8 Workbook_WindowResize(ByVal Wn As Window) 138

9.3.9 Workbook_WindowActivate(ByVal Wn As Window) 138

9.3.10 Workbook_WindowDeactivate(ByVal Wn As Window) 138

9.3.11 Workbook_AddInInstall() 138

9.3.12 Workbook_AddInUninstall 138

9.3.13 Workbook_SheetActivate(ByVal Sh As Object) 138

9.3.14 Workbook_SheetBeforeDoubleClick(ByVal Sh As Object,ByVal Target As Range,Cancel As Boolean) 139

9.3.15 Workbook_SheetBeforeRightClick(ByVal Sh As Object,ByVal Target As Range,Cancel As Boolean) 139

9.3.16 Workbook_SheetCalculate(ByVal Sh As Object) 139

9.3.17 Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range) 139

9.3.18 Workbook_Sync(ByVal SyncEventType As Office.MsoSyncEventType) 139

9.3.19 Workbook_SheetDeactivate(ByVal Sh As Object) 139

9.3.20 Workbook_SheetFollowHyperlink(ByVal Sh As Object,ByVal Target As Hyperlink) 140

9.3.21 Workbook_SheetSelectionChange(ByVal ShAs Object,ByVal TargetAs Range) 140

9.3.22 Workbook_PivotTableCloseConnection(ByVal Target As PivotTable) 140

9.3.23 Workbook_PivotTableOpenConnection(ByVal Target As PivotTable) 140

9.3.24 Workbook_RowsetComplete(ByVal Description As String,ByVal Sheet As String,ByVal Success As Boolean) 140

9.4 工作表事件 140

9.4.1 Worksheet_Activate() 140

9.4.2 Worksheet_Deactivate() 140

9.4.3 Worksheet_BeforeDoubleClick(ByVal Target As Range,Cancel As Boolean) 141

9.4.4 Worksheet_BeforeRightClick(ByValTarget As Range,Cancel As Boolean) 141

9.4.5 Worksheet_Calculate() 141

9.4.6 Worksheet_Change(ByVal Target As Range) 142

9.4.7 Worksheet_SelectionChange(ByVal Target As Range) 142

9.4.8 Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 143

9.5 在单元格中快速输入24小时制事件 143

9.6 图表事件 144

9.6.1 嵌入图表 144

9.6.2 Chart_Activate() 145

9.6.3 Chart_BeforeDoubleClick(ByVal ElementID As Long,ByVal Argl As Long,ByVal Arg2 As Long,Cancel As Boolean) 145

9.6.4 Chart_BeforeRightClick(Cancel As Boolean) 145

9.6.5 Chart_Calculate() 145

9.6.6 Chart_Deactivate() 145

9.6.7 Chart_MouseDown(ByVal Button As Long,ByVal Shift As Long,ByVal x As Long,ByVal y As Long) 145

9.6.8 Chart_MouseMove(ByVal Button As Long,ByVal Shift As Long,ByVal x As Long,ByVal y As Long) 146

9.6.9 Chart_MouseUp(ByVal Button As Long,ByVal Shift As Long,ByVal x As Long,ByVal y As Long)…….. 146

9.6.10 Chart_Resize() 146

9.6.11 Chart_Select(ByVal ElementID As Long,ByVal Argl As Long,ByVal Arg2 As Long) 146

9.6.12 Chart_SeriesChange(ByVal SeriesIndex As Long,ByVal PointIndex As Long) 147

9.6.13 Chart_DragOver() 147

9.6.14 Chart_DragPlot() 147

9.7 应用程序级事件 147

9.7.1 AppEvent_AfterCalculate() 148

9.7.2 AppEvent_NewWorkbook(ByVal Wb As Workbook) 148

9.7.3 AppEvent_SheetActivate(ByVal Sh As Object) 149

9.7.4 AppEvent_SheetBeforeDoubleClick(ByVal Sh As Object,ByVal Target As Range,CancelAs Boolean) 149

9.7.5 AppEvent_SheetBeforeRightClick(ByVal Sh As Object,ByVal Target As Range,CancelAs Boolean) 149

9.7.6 AppEvent_SheetCalculate(ByVal Sh As Object) 149

9.7.7 AppEvent_SheetChange(ByVal Sh As Object,ByVal Target As Range) 149

9.7.8 AppEvent_SheetDeactivate(ByVal ShAs Object) 149

9.7.9 AppEvent_SheetFollowHyperlink(ByVal Sh As Object,ByVal Target As Hyperlink) 149

9.7.10 AppEvent_SheetSelectionChange(ByVal Sh As Object,ByVal Target As Range) 149

9.7.11 AppEvent_WindowActivate(ByVal Wb As Workbook,ByVal Wn As Window) 150

9.7.12 AppEvent_WindowDeactivate(ByVal Wb As Workbook,ByVal Wn As Window) 150

9.7.13 AppEvent_WindowResize(ByVal Wb As Workbook,ByVal Wn As Window) 150

9.7.14 AppEvent_WorkbookActivate(ByVal Wb As Workbook) 150

9.7.15 AppEvent_WorkbookAddinInstall(ByVal Wb As Workbook) 150

9.7.16 AppEvent_WorkbookAddinUninstall(ByVal Wb As Workbook) 150

9.7.17 AppEvent_WorkbookBeforeClose(ByVal Wb As Workbook,Cancel As Boolean) 151

9.7.18 AppEvent_WorkbookBeforePrint(ByVal Wb As Workbook,Cancel As Boolean) 151

9.7.19 AppEvent_WorkbookBeforeSave(ByVal Wb As Workbook,ByVal SaveAsUI As Boolean,Cancel As Boolean) 151

9.7.20 AppEvent_WorkbookNewSheet(ByVal Wb As Workbook,ByVal Sh As Object) 151

9.7.21 AppEvent_WorkbookOpen(ByVal WbAs Workbook) 151

9.7.22 AppEvent_WorkbookPivotTableCloseConnection(ByVal Wb As Workbook,ByVal Target As PivotTable) 151

9.7.23 AppEvent_WorkbookPivotTableOpenConnection(ByVal Wb As Workbook,ByValTargetAsPivotTable) 151

9.7.24 AppEvent_WorkbookRowsetComplete(ByVal Wb As Workbook,ByVal DescriptionAs String,ByVal Sheet As String,ByVal SuccessAs Boolean) 152

9.7.25 AppEvent_WorkbookSync(ByVal Wb As Workbook,ByVal SyncEventType As Office.MsoSyncEventType) 152

第10章 用户窗体简介 153

10.1 用户交互方法 153

10.1.1 输入框 153

10.1.2 消息框 154

10.2 创建用户窗体 154

10.3 调用和隐藏用户窗体 155

10.4 用户窗体编程 155

10.5 控件编程 157

10.6 使用基本的窗体控件 158

10.6.1 使用标签、文本框和命令按钮 158

10.6.2 选择在窗体中使用列表框还是组合框 160

10.6.3 在用户窗体中添加单选按钮 162

10.6.4 在用户窗体中添加图片 163

10.6.5 在用户窗体中使用旋转按钮 164

10.6.6 使用多页控件来组合窗体 165

10.7 验证用户输入 168

10.8 非法的窗口关闭 168

10.9 获取文件名 169

第11章 创建图表 171

11.1 Excel 2007图表引擎 171

11.2 Excel 2007新增图表功能编程 172

11.3 在VBA代码中引用图表和图表对象 172

11.4 创建图表 172

11.4.1 指定图表的大小和位置 173

11.4.2 引用特定图表 174

11.5 录制选项卡“布局”和“设计”中的命令 176

11.5.1 指定图表类型 176

11.5.2 指定模板图表类型 179

11.5.3 修改图表的布局或样式 179

11.6 使用SetElement模拟通过“布局”选项卡所做的修改 181

11.7 使用VBA修改图表标题 186

11.8 模拟通过“格式”选项卡所做的修改 186

11.9 使用监视窗口查看对象的设置 199

11.10 使用监视窗口了解旋转设置 202

11.11 创建高级图表 203

11.11.1 创建真正的“开盘-盘高-盘低-收盘”股价图 203

11.11.2 为频数图创建区间(bin) 205

11.11.3 创建堆积面积图 208

11.12 将图表作为图形导出 212

11.13 创建数据透视图 213

第12章 使用统计函数 216

12.1 通过VBA使用高级筛选比通过Excel用户界面使用它更容易 216

12.2 使用高级筛选提取不重复的值 217

12.2.1 使用用户界面提取不重复的值 217

12.2.2 使用VBA代码提取不重复的值 219

12.2.3 获得多个字段的不重复组合 222

12.3 使用包含条件区域的高级筛选 223

12.3.1 使用逻辑OR合并多个条件 225

12.3.2 使用逻辑AND合并两个条件 225

12.3.3 其他稍复杂的条件区域 225

12.3.4 最复杂的条件——使用公式指定条件 226

12.4 在原有区域显示高级筛选结果 232

12.4.1 原地筛选时没有符合条件的记录 233

12.4.2 执行就地筛选后显示所有记录 233

12.4.3 在原有区域显示不重复的筛选结果 233

12.5 复制符合条件的所有记录而不是不重复的记录 233

12.5.1 复制所有列 234

12.5.2 复制部分列并重新排列 234

12.5.3 使用两种高级筛选为每位顾客创建报表 236

12.6 使用自动筛选 240

12.6.1 使用代码启用自动筛选 240

12.6.2 隐藏部分字段的自动筛选下拉列表 241

12.6.3 使用自动筛选针对单列进行筛选 242

12.6.4 从筛选下拉列表中选择多个值 243

12.6.5 使用自动筛选选择动态日期范围 243

12.6.6 根据颜色或图标进行筛选 244

12.6.7 使用自动筛选复制下周的所有记录 246

第13章 使用VBA创建数据透视表 248

13.1 数据透视表简介 248

13.2 了解版本 248

13.3 通过Excel用户界面创建数据透视表 250

13.4 使用Excel VBA创建数据透视表 253

13.4.1 定义数据透视表缓存 254

13.4.2 创建和配置数据透视表 254

13.4.3 求和而非计数 255

13.4.4 无法移动或修改部分数据透视报表的原因 257

13.4.5 确定数据透视表的最终大小 257

13.5 创建有关每种产品的收入的报表 260

13.5.1 避免数据区域包含空单元格 261

13.5.2 确保使用表格布局 262

13.5.3 使用“自动排序”来控制排列顺序 262

13.5.4 修改默认的数字格式 262

13.5.5 删除多个行字段的分类汇总行 263

13.5.6 删除“总计”行 263

13.6 在创建最终的报表时处理讨厌的问题 263

13.6.1 创建用于放置报表的工作簿 264

13.6.2 将汇总数据复制到空报表工作表中 264

13.6.3 填充大纲视图导致的空单元格 265

13.6.4 最后的格式设置 266

13.6.5 添加分类汇总 266

13.6.6 完整的代码 267

13.7 解决包含多个数据字段时导致的问题 270

13.7.1 计算数据字段 272

13.7.2 计算项 274

13.8 使用分组根据日期字段进行汇总 276

13.8.1 立即VBA中的Group方法 276

13.8.2 按星期分组 278

13.8.3 通过将两个日期字段分组计算从订货到交货的时间 280

13.9 使用高级数据透视表技术 283

13.9.1 使用“自动显示”创建简报 283

13.9.2 使用ShowDetail筛选记录集 285

13.9.3 为每个地区创建一个报表 287

13.9.4 手工筛选出多项 290

13.10 手工控制排列顺序 291

13.11 使用求和、平均值、计数、最小值、最大值等 291

13.12 使用百分比 293

13.12.1 占总和的百分比 293

13.12.2 相对于前一个月的增长百分比 293

13.12.3 占特定地区的百分比 294

13.12.4 当前累计值 294

13.13 使用Excel 2007新增的数据透视表功能 295

13.13.1 使用新的筛选方式 295

13.13.2 应用数据透视表样式 296

13.13.3 通过“设计”选项卡修改布局 297

13.13.4 应用数据可视化 298

第14章 展示Excel的威力 300

14.1 文件操作 300

14.1.1 列出文件夹中的文件 300

14.1.2 导入CSV 302

14.1.3 将整个CSV读入内存并进行分析 303

14.2 合并和拆分工作簿 304

14.2.1 将每个工作表存储为独立的工作簿 304

14.2.2 合并工作簿 305

14.2.3 筛选数据并将结果复制到工作表中 306

14.2.4 将数据导出到Word文档中 307

14.3 处理单元格批注 308

14.3.1 列出批注 308

14.3.2 调整批注框的大小 310

14.3.3 通过居中调整批注框的大小 311

14.3.4 将图表用作批注 312

14.4 让客户叫绝的实用程序 313

14.4.1 使用条件格式突出选定单元格 313

14.4.2 在不使用条件格式的情况下突出选定的单元格 315

14.4.3 自定义转置数据 316

14.4.4 选中/取消选中非连续单元格 318

14.5 VBA专业技巧 320

14.5.1 数据透视表深化 320

14.5.2 加速页面设置 321

14.5.3 计算代码的执行时间 324

14.5.4 自定义排序顺序 324

14.5.5 进度指示器 325

14.5.6 密码框 327

14.5.7 修改大小写 329

14.5.8 使用SpecialCells进行选择 330

14.5.9 ActiveX上下文菜单 330

14.6 很不错的应用程序 332

14.6.1 检索股票/基金的历史价格 332

14.6.2 使用VBA扩展性将代码移到新工作簿中 333

第15章 数据可视化和条件格式 335

15.1 数据可视化简介 335

15.2 VBA中新增的数据可视化方法和属性 336

15.3 在区域中添加数据条 337

15.4 在区域中添加色阶 339

15.5 在区域中添加图标集 340

15.5.1 指定图标集 341

15.5.2 指定每个图标对应的范围 342

15.6 可视化使用技巧 342

15.6.1 将图标集应用于区域的一部分 342

15.6.2 在区域中使用双色数据条 344

15.7 使用其他条件格式化方法 346

15.7.1 设置高于或低于平均值的单元格的格式 346

15.7.2 设置值最大或最小的单元格的格式 347

15.7.3 设置非重复或重复单元格的格式 348

15.7.4 根据单元格的值设置其格式 349

15.7.5 设置包含文本的单元格的格式 349

15.7.6 设置包含日期的单元格的格式 350

15.7.7 设置空单元格或包含错误的单元格的格式 350

15.7.8 使用公式确定要设置哪些单元格的格式 350

15.7.9 使用新属性NumberFormat 352

第16章 读写Web 353

16.1 从Web获取数据 353

16.1.1 手工创建Web查询 354

16.1.2 使用VBA更新现有Web查询 355

16.1.3 使用VBA创建新的Web查询 355

16.2 使用流式数据 358

16.3 使用Application.OnTime定期分析数据 359

16.3.1 计划执行过程要求Excel处于就绪模式 359

16.3.2 指定更新的时间窗口 360

16.3.3 撤销宏运行计划 360

16.3.4 关闭Excel将取消所有挂起的宏执行计划 360

16.3.5 让宏在X分钟后运行 361

16.3.6 语音提示计划 361

16.3.7 让宏每隔两分钟运行一次 362

16.4 将数据发布到网上 363

16.4.1 使用VBA创建自定义网页 364

16.4.2 将Excel用作内容管理系统 365

16.4.3 在Excel中使用FTP 368

16.5 信任Web内容 368

第17章 Excel 2007中的XML 371

17.1 XML简介 371

17.2 简单的XML规则 372

17.3 通用文件格式 372

17.4 XML是新的通用文件格式 373

17.5 XML缩略语 374

17.6 Microsoft将XML作为文件类型 375

17.7 使用Amazon.com的XML数据 376

第18章 自动控制Word 379

18.1 早期绑定 379

18.2 晚期绑定 382

18.3 创建和引用对象 382

18.3.1 关键字New 382

18.3.2 CreateObject函数 383

18.3.3 GetObject函数 383

18.4 使用常量 384

18.4.1 使用监视窗口来获悉常量的实际值 384

18.4.2 使用对象浏览器来获悉常量的实际值 385

18.5 理解Word对象 386

18.5.1 Document对象 386

18.5.2 Selection对象 388

18.5.3 Range对象 388

18.5.4 书签 392

18.6 控制Word窗体控件 394

第19章 数组 397

19.1 声明数组 397

19.2 填充数组 398

19.3 清空数组 400

19.4 使用数组提高代码的运行速度 401

19.5 动态数组 402

19.6 传递数组 403

第20章 处理文本文件 405

20.1 导入文本文件 405

20.1.1 导入不超过1084576行的文本文件 405

20.1.2 读取超过1084576行的文本文件 411

20.2 写入文本文件 415

第21章 将Access用作后端以改善多用户数据访问 416

21.1 ADO和DAO之比较 417

21.2 ADO工具 418

21.3 添力口记录 420

21.4 检索记录 421

21.5 更新记录 423

21.6 通过ADO删除记录 425

21.7 通过ADO汇总记录 425

21.8 通过ADO完成其他任务 426

21.8.1 检查表是否存在 426

21.8.2 检查字段是否存在 427

21.8.3 动态添加表 428

21.8.4 动态添加字段 429

第22章 创建类、记录和集合 430

22.1 插入类模块 430

22.2 捕获应用程序事件和嵌入图表事件 431

22.2.1 应用程序事件 431

22.2.2 嵌入图表事件 432

22.3 创建自定义对象 434

22.4 使用自定义对象 434

22.5 使用Property Let和Property Get控制用户使用自定义对象的方式 435

22.6 集合 437

22.6.1 在标准模决中创建集合 437

22.6.2 在类模块中创建集合 439

22.6.3 帮助按钮 440

22.7 用户定义类型(UDT) 442

第23章 高级用户窗体技术 445

23.1 使用“用户窗体”工具栏设计用户窗体控件 445

23.2 其他用户窗体控件 445

23.2.1 复选框 445

23.2.2 TabStrip控件 447

23.2.3 RefEdit 449

23.2.4 切换按钮 450

23.2.5 将滚动条用作滑块让用户选择值 451

23.3 控件和集合 452

23.4 非模态用户窗体 454

23.5 在用户窗体中使用超链接 455

23.6 在运行阶段添加控件 456

23.6.1 动态地调整用户窗体大小 457

23.6.2 动态地添加控件 457

23.6.3 动态地确定大小 458

23.6.4 添加其他控件 458

23.6.5 动态地添加图像 459

23.6.6 完成的代码 459

23.7 在用户窗体中添加帮助 461

23.7.1 显示快捷键 462

23.7.2 添加控件提示文本 462

23.7.3 指定Tab顺序 462

23.7.4 给活动控件着色 463

23.8 多列列表框 464

23.9 透明窗体 465

第24章 Windows应用程序编程接口 467

24.1 Windows API简介 467

24.2 理解API声明 467

24.3 使用API声明 468

24.4 API示例 469

24.4.1 获悉计算机的名称 469

24.4.2 确定网络中是否有人打开了Excel文件 470

24.4.3 获悉显示器分辨率设置 470

24.4.4 自定义“关于”对话框 471

24.4.5 禁止通过“X”按钮关闭用户窗体 472

24.4.6 不间断的时钟 473

24.4.7 播放声音 473

24.4.8 获悉文件路径 474

24.5 找到其他API声明 477

第25章 处理错误 479

25.1 错误导致的后果 479

25.2 使用On Error GoTo进行基本错误处理 482

25.3 通用的错误处理程序 483

25.3.1 忽略错误 483

25.3.2 页面设置问题通常可忽略 484

25.3.3 禁止显示Excel警告 485

25.3.4 利用错误 485

25.4 培训用户 486

25.5 开发阶段错误和运行阶段错误 486

25.5.1 运行错误9:下标越界 486

25.5.2 运行错误1004:Global对象的Range方法失败 487

25.6 保护代码的缺点 488

25.7 破解密码 489

25.8 密码保护的其他问题 489

25.9 不同版本导致错误 490

第26章 创建自定义选项卡以方便用户运行宏 491

26.1 辞旧迎新 491

26.2 将代码加入到文件夹Customui中 492

26.3 创建选项卡和组 493

26.4 在组中添加控件 494

26.5 Excel文件的结构 499

26.6 理解RELS文件 499

26.7 重命名Excel文件并打开它 500

26.8 给按钮指定图像 500

26.8.1 Microsoft Office图标 500

26.8.2 自定义图标 502

26.9 将Excel 2003自定义工具栏转换为Excel 2007自定义选项卡 503

26.10 排除错误 505

26.10.1 在DTD/架构中没有找到指定属性 505

26.10.2 菲法的名称字符 506

26.10.3 元素之间的父子关系不正确 506

26.10.4 Excel发现不可读取的内容 506

26.10.5 参数数量不正确或属性值无效 507

26.10.6 自定义选项卡没出现 508

26.11 其他运行宏的方式 508

26.11.1 快捷键 508

26.11.2 将宏关联到命令按钮 509

26.11.3 将宏同ActiveX控件关联起来 511

26.11.4 通过超链接运行宏 512

第27章 创建加载项 513

27.1 标准加载项的特征 513

27.2 将Excel工作簿转换为加载项 514

27.2.1 使用“另有为”将文件转换为加载项 514

27.2.2 使用Visual Basic编辑器将文件转换为加载项 515

27.3 让用户安装加载项 516

27.3.1 标准加载项不安全 517

27.3.2 关闭加载项 518

27.3.3 删除加载项 518

27.4 使用隐藏工作簿代替加载项 518

27.5 使用隐藏工作簿存储所有宏和窗体 519