范例
当前位置:首页 > 其他范文 > 范例 > 列表页

excel,vba范例大全,光盘

小草范文网  发布于:2017-04-03  分类: 范例 手机版

篇一:office_Excel_vba经典教材(带实例)

VBA入门系列讲座

1.1 VBA是什么

直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:

1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(excel等)自动化

2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.

3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如excel.

尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在excel中用VBA创建解决方案后,即已具备在word access OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.

* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.

* VBA可以称作excel的“遥控器”.

VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.

此外,如果你愿意,还可以将excel用做开发平台实现应用程序.

1.2 excel环境中基于应用程序自动化的优点

也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:

1. 使重复的任务自动化.

2. 自定义excel工具栏,菜单和界面.

3. 简化模板的使用.

4. 自定义excel,使其成为开发平台.

5. 创建报表.

6. 对数据进行复杂的操作和分析.

用excel作为开发平台有如下原因:

1. excel本身功能强大,包括打印,文件处理,格式化和文本编辑.

2. excel内置大量函数.

3. excel界面熟悉.

4. 可连接到多种数据库.

用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用excel作为开发平台,则由于excel已经具备这些基本功能,你要做的只是

使用它.

1.3 录制简单的宏

在介绍学习VBA之前,应该花几分钟录制一个宏。

新术语:“宏”,指一系列excel能够执行的VBA语句。

以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤:

1)打开新工作簿,确认其他工作簿已经关闭。

2)选择A1单元格。调出“常用”工具栏。

3)选择“工具”—“宏”—“录制新宏”。

4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。

★ 宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。

5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。

6)单击“停止录制”工具栏按钮,结束宏录制过程。

※ 如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。

录制完一个宏后就可以执行它了。

1.4 执行宏

当执行一个宏时,excel按照宏语句执行的情况就像VBA代码在对excel进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用excel标准命令所无法实现的功能。而且,一旦熟悉了excel的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行:

1)选择任何一个单元格,比如A3。

2)选择“工具”—“宏”—“宏”,显示“宏”对话框。

3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。

1.5 查看录制的代码

到底是什么在控制excel的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧.

1)选择“工具”—“宏”—“宏”,显示“宏”对话框。

2)单击列表中的“改变颜色”,选择“编辑”按钮。

此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)

Sub 改变颜色()

’ 改变颜色 Macro

’ xw 记录的宏 2000-6-10

With Selection.Interior

.ColorIndex = 3

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

End With

End Sub

将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。学习VBA或编程语言在某种程度上比较像在学习一种外语。

Sub 改变颜色():这是宏的名称。

中间的以“ ’”开头的五行称为“注释”,它在录制宏时自动产生。

以With 开头到End With 结束的结构是With结构语句,这段语句是宏的主要部分。注意单词“selection”,它代表“突出显示的区域”(即:选定区域)。With Selection.Interior :它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“属性”。

其中:

.ColorIndex = 3: 将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将3改为其他数字试试看。

.Pattern = xlSolid:设置该区域的内部图案。由于是录制宏,所以,虽然你并未设置这一项,宏仍然将其记录下来(因为在“图案”选项中有此一项,只是你为曾设置而已)。xlSolid表示纯色。

.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。

End With:结束With 语句。

End Sub:整个宏的结束语

1.6 编辑录制的代码

在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句?现在,在宏中作一个修改,删除多余行,直到和下面代码相同:

Sub 改变颜色()

’ 改变颜色 Macro

’ xw 记录的宏 2000-6-10

With Selection.Interior

.ColorIndex = 3

End With

End Sub

完成后,在工作表中试验一下。你会发现结果和修改前的状况一样。在With 语句前加入一行:

Range("A5").Select

试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红.

现在可以看到,编辑录制的宏同样非常简单。需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录制的语句。

1.7 录制宏的局限性

希望自动化的许多excel过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:

1)录制的宏无判断或循环能力.

2)人机交互能力差,即用户无法进行输入,计算机无法给出提示.

3)无法显示excel对话框.

4)无法显示自定义窗体.

1.8 小结

本学时中,你已经掌握了VBA的一些基础知识,你会录制宏、编辑宏而且了解了录制宏的局限性.你很努力.并且已经为将来学习VBA甚至VB等编程语言打下了基础.关键是你已经了解了一个谜底,就是说,你了解了什么是编程.下面是些小练习,做完后才可以去玩哟.

思考:

1)VBA只能用于excel吗?

2)VBA是基于哪种语言?

3)说说excel和VBA的关系.

4)为什么要用宏?

原文发表时间:未知

<[dvnews_page=(2):处理录制的宏]

2.1 为宏指定快捷键

你也许希望为经常使用的宏指定快捷键。快捷键是指键的组合,当其按下时执行一条命令。例如:CTRL+C

在许多程序中代表“复制”命令。当给宏指定了快捷键后,就可以用快捷键来执行宏,而不必通过“工具”菜单。

注意:当包含宏的工作簿打开时间,为宏指定快捷键会覆盖excel默认的快捷键。例如:把CTRL+C指定给某个宏,那么CTRL+C就不再执行复制命令。用以下方法可以打印出excel的快捷键清单(用A4纸打印共有24页之多):

1)打开excel帮助文件并选择“目录”选项。

2)从“使用快捷键”文件夹中选择“”快捷键“标题。

3)右击该标题,从快捷菜单中选择“打印”。

4)选择“打印所选标题和所有子主题”,单击“确定”。

可以在创建宏时指定快捷键,也可以在创建后再指定。要在创建(录制)宏时指定快捷键,只须在录制宏时在输入宏名后,在“快捷键”文本框中输入相应的键。录制宏后指定快捷键也很简单,只需选择“工具”“宏”,显示“宏”对话框,选择要指定快捷键的宏,再单击“选项”按钮,通过“选项”对话框进行设置。

2.2 决定宏保存的位置

宏可保存在三种可能的位置:

1)当前工作簿。(只有该工作簿打开时,该宏才可用。)

2)新工作簿。

3)个人宏工作簿。

2.3 个人宏工作簿

个人宏工作簿,是为宏而设计的一种特殊的具有自动隐藏特性的工作簿。第一次将宏创建到个人宏工作簿时,会创建名为“PERSONAL.XLS"的新文件。如果该文件存在,则每当excel启动时会自动将此文件打开并隐藏在活动工作簿后面(在“窗口”菜单中选择“取消隐藏”后,可以很方便地发现它的存在。)如果你要让某个宏在多个工作簿都能使用,那么就应当创建个人宏工作簿,并将宏保存于其中。个人宏工作簿保存在“XLSTART”文件夹中。具体路径为:C:\WINDOWS\Profiles\Application Data\Microsoft\excel\XLSTART。可以以单词“XLSTART”查询。

注意:如果存在个人宏工作簿,则每当excel启动时会自动将此文件打开并隐藏。因为它存放在XLSTART文件夹内。

2.3.1 保存宏到个人宏工作簿

本练习,将保存一个简单的宏到个人宏工作簿,该宏为文本加下划线并改为斜体,步骤如

篇二:Excel VBA实例

Excel VBA实例

目录

第1章 宏的应用技巧

宏是一个VBA程序,通过宏可以完成枯燥的、频繁的重复性工作。本章的实例分别介绍在Excel 2003、Excel 2007中录制宏、使用Visual Basic代码创建宏的方法,最后还以实例演示运行宏和编辑宏的方法。

1.1 创建宏1

例001 在Excel 2003中录制宏 1

例002 打开Excel 2007的录制宏功能 3

例003 在Excel 2007中录制宏 4

例004 使用Visual Basic创建宏 5

1.2 管理宏6

例005 运行宏 7

例006 编辑宏 8

第2章 VBE使用技巧

VBE(Visual Basic Editor)是编写VBA代码的工具,在上一章中曾使用VBE编辑宏代码。本章的实例介绍了设置VBE操作环境、在VBE中管理工程代码、使用VBE的辅助工具提高代码输入效率等方法。

2.1 设置VBE操作环境 10

例007 停靠VBE子窗口 10

例008 定制VBE环境 12

2.2 工程管理13

例009 增加模块 13

例010 删除模块 15

例011 导出模块 16

例012 导入模块 17

2.3 管理代码18

例013 属性/方法列表 18

例014 常数列表 19

例015 参数信息 20

例016 自动完成关键字 21

第3章 程序控制流程技巧

结构化程序设计中使用的基本控制结构有3种:顺序结构、选择结构和循环结构。 本章以实例演示了VBA中这三种控制结构的控制语句,最后还介绍了在VBA中使用数组的方法。

3.1 常用输入/输出语句 23

例017 九九乘法表(Print方法的应用) 23

例018 输入个人信息(Inputbox函数的应用) 24

例019 退出确认(Msgbox函数的应用)25

3.2 分支结构27

例020 突出显示不及格学生 27

例021 从身份证号码中提取性别 29

例022 评定成绩等级 30

例023 计算个人所得税 32

3.3 循环结构34

例024 密码验证 34

例025 求最小公倍数和最大公约数 36

例026 输出ASCII码表 37

例027 计算选中区域数值之和 39

例028 换零钱法(多重循环) 40

3.4 使用数组42

例029 数据排序 42

例030 彩票幸运号码 44

例031 用数组填充单元格区域 46

第4章 Range对象操作技巧

用户在使用Excel时,大部分时间都是在操作单元格中的数据,同样地,在Excel中使用VBA编程时,也需要频繁地引用单元格区域。本章实例介绍用VBA引用单元格、获取单元格信息、操作单元格数据、设置单元格格式等内容。

4.1 获取单元格的引用48

例032 使用A1样式引用单元格48

例033 使用索引号引用单元格 49

例034 引用多个单元格区域 50

例035 合并单元格区域 51

例036 引用合并区域的子区域 52

例037 动态选中单元格区域 53

例038 引用相对其他单元格的单元格 54

例039 扩展单元格区域 55

例040 引用单元格交叉区域 56

例041 引用当前区域 57

例042 获取已使用区域 58

例043 引用区域内的单元格 59

例044 设置标题行格式 61

例045 选取条件格式单元格 62

例046 选择数据列末单元格 63

例047 获取某列连续数据区域 64

例048 获取多个不同长度的非连续列 65

例049 当前单元格的前后单元格 65

例050 获取三维区域 66

4.2 获取单元格信息67

例051 获取标题行和数据行 67

例052 获取当前区域信息 68

例053 单元格区域是否有公式 69

例054 追踪公式单元格 70

例055 获取单元格地址 71

4.3 操作单元格72

例056 合并相同值单元格 72

例057 删除指定字符后的内容 73

例058 给单元格设置错误值 75

例059 活动单元格错误类型 76

例060 自动设置打印区域 77

例061 按设置长度换行 77

例062 选择不含公式的单元格 79

例063 生成不重复随机数 80

例064 拆分单元格 82

例065 添加超链接 83

例066 删除超链接 84

例067 限制单元格移动范围 85

例068 插入批注 86

例069 隐藏/显示批注 87

例070 删除批注 87

例071 复制单元格区域 88

例072 给单元格设置公式 90

例073 复制公式 90

例074 查找并填充空白单元格 91

例075 清除单元格 92

例076 删除单元格区域 93

4.4 设置单元格格式94

例077 按颜色统计单元格数量 94

例078 获取单元格底纹和图案 95

例079 设置页眉为单元格值 96

例080 设置日期格式 97

例081 生成大写金额 98

例082 格式化当前区域的数据 100

例083 设置自动套用格式 101

例084 突出显示当前位置 101

例085 设置边框线 103

例086 设置文本对齐格式 104

例087 单元格文本缩排 105

例088 设置文本方向 107

例089 设置自动换行格式 108

例090 设置缩小字体填充 108

例091 设置条件格式 109

例092 设置单元格图案 111

例093 合并单元格 112

第5章 Worksheet对象操作技巧

Worksheet对象表示Excel工作簿中的工作表,Worksheet对象是Worksheets集合的成员。在VBA中,通过操作Worksheet对象和Worksheets集合对象,即可控制Excel的工作表。本章实例介绍了用VBA代码操作工作表、操作工作表行和列、通过工作表事件控制工作表等内容。

5.1 控制工作表集合114

例094 增加工作表 114

例095 窗体方式新增工作表 115

例096 窗体方式删除工作表 118

例097 批量新建工作表 119

例098 获取工作表数 120

例099 循环激活工作表 121

例100 选择工作表 121

例101 选取前一个工作表/后一个工作表 122

例102 选中工作表的名称 123

例103 保护工作表 124

例104 撤销工作表的保护 126

例105 判断工作表是否存在 127

例106 工作表排序 129

例107 复制工作表 130

例108 移动工作表 131

例109 删除工作表 132

例110 删除空工作表 133

例111 密码控制删除工作表 134

例112 隐藏/显示工作表 135

例113 工作表移至最前/最后 136

例114 工作表打印页数 137

例115 重命名工作表 138

例116 设置工作表标签颜色 140

例117 导出工作表 141

5.2 操作工作表的行和列144

例118 删除空行 144

例119 插入行 145

例120 插入多行 146

例121 插入列 147

例122 隐藏/显示行 148

例123 隐藏/显示列 149

例124 设置行高 149

例125 设置列宽 151

5.3 操作工作表152

例126 合并工作表数据 152

例127 工作表是否被保护 153

例128 制作工作表目录 154

例129 删除图片 155

例130 修改工作表的代码名 156

5.4 控制工作表事件158

例131 为输入数据的单元格添加批注

例132 自动填充相同值 159

例133 记录同一单元格多次输入值 160

例134 禁止选中某个区域 161 158

例135 禁止输入相同数据 162

例136 设置滚动区域 163

例137 自动添加边框线 164

例138 限制在数据区域下一行输入数据 165

例139 增加快捷菜单 166

例140 限制选择其他工作表 168

例141 自动隐藏工作表 169

例142 将原数据作批注 170

例143 输入编码 171

第6章 Workbook对象操作技巧

Workbook对象表示Excel工作簿,Workbooks集合对象表示Excel中所有打开的工作簿。本章实例介绍VBA控制工作簿的方法,包括对工作簿集合和工作簿的操作、通过工作簿事件控制工作簿的操作。

6.1 操作工作簿集合173

例144 批量新建工作簿 173

例145 设置背景音乐 174

例146 打开工作簿 176

例147 保存工作簿 177

例148 更名保存工作簿 178

例149 将工作簿保存为Web页 180

例150 打开文本文件 181

例151 设置工作簿密码 182

例152 保护工作簿 184

例153 查看文档属性 185

例154 处理命名单元格区域 187

例155 判断工作簿是否存在 190

例156 判断工作簿是否打开 191

例157 备份工作簿 192

例158 获取关闭工作簿中的值(方法1)194

例159 获取关闭工作簿中的值(方法2)196

例160 多工作簿数据合并 197

6.2 控制工作簿事件199

例161 自动打开关联工作簿 199

例162 禁止拖动单元格 200

例163 设置新增工作表为固定名称 201

例164 退出前强制保存工作簿 202

例165 限制打印 203

例166 限制保存工作簿 204

例167 限制工作簿使用次数 205

例168 限制工作簿使用时间 207

例169 设置应用程序标题 207

例170 根据密码打开工作簿 209

例171 打开工作簿禁用宏 210

例172 用VBA删除宏代码 212

篇三:Excel VBA实例教程

目录

单元格的引用方法 ........................................................................................................................... 2

选定单元格区域的方法 ................................................................................................................... 9

获得指定行、列中的最后一个非空单元格 ................................................................................. 12

定位单元格..................................................................................................................................... 14

查找单元格..................................................................................................................................... 16

替换单元格内字符串 ..................................................................................................................... 22

复制单元格区域 ............................................................................................................................. 23

仅复制数值到另一区域 ................................................................................................................. 27

单元格自动进入编辑状态 ............................................................................................................. 28

禁用单元格拖放功能 ..................................................................................................................... 29

单元格格式操作 ............(本文来自:wwW.xIAocAofaNwEn.com 小 草范 文 网:excel,vba范例大全,光盘)................................................................................................................. 30

单元格中的数据有效性 ................................................................................................................. 37

单元格中的公式 ............................................................................................................................. 43

单元格中的批注 ............................................................................................................................. 49

合并单元格操作 ............................................................................................................................. 51

高亮显示单元格区域 ..................................................................................................................... 58

双击被保护单元格时不显示提示消息框 ..................................................................................... 60

重新计算工作表指定区域 ............................................................................................................. 62

输入数据后单元格自动保护 ......................................................................................................... 63

工作表事件Target参数的使用方法 ............................................................................................. 64

单元格的引用方法

在VBA中经常需要引用单元格或单元格区域区域,主要有以下几种方法。

1、使用Range属性

VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示。 1. Sub RngSelect() 2. Sheet1.Range("A3:F6, B1:C5").Select

3. End Sub

复制代码

代码解析:

RngSelect过程使用Select方法选中A3:F6,B1:C5单元格区域。

Range属性返回一个Range对象,该对象代表一个单元格或单元格区域,语法如下:

1. Range(Cell1, Cell2)

复制代码

参数Cell1是必需的,必须为 A1 样式引用的宏语言,可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。也可包括美元符号(即绝对地址,如“$A$1”)。可在区域中任一部分使用局部定义名称,如Range("B2:LastCell"),其中LastCell为已定义的单元格区域名称。

参数Cell2是可选的,区域左上角和右下角的单元格。

运行Sub RngSelect过程,选中A3:F6, B1:C5单元格区域,如图 1 所示。

图 1 使用Range属性引用单元格区域

注意 如果没有使用对象识别符,Range属性返回活动表的一个区域,如果活动表不是工作表,则该属性无效。

2、使用Cells属性

使用Cells属性返回一个Range对象,如下面的代码所示。 1. Sub Cell() 2. Dim icell As Integer

3. For icell = 1 To 100

4.Sheet2.Cells(icell, 1).Value = icell

5. Next

6. End Sub

复制代码

代码解析:

Cell过程使用For...Next语句为工作表中的A1:A100单元格区域填入序号。

Cells属性指定单元格区域中的单元格,语法如下:

1. Cells(RowIndex, ColumnIndex)

复制代码

参数RowIndex是可选的,表示引用区域中的行序号。

参数ColumnIndex是可选的,表示引用区域中的列序号。

如果缺省参数,Cells属性返回引用对象的所有单元格。

Cells属性的参数可以使用变量,因此经常应用于在单元格区域中循环。

3、使用快捷记号

在VBA中可以将A1引用样式或命名区域名称使用方括号括起来,作为Range属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示。 1. Sub Fastmark() 2. [A1:A5] = 2

3. [Fast] = 4

4. End Sub

复制代码

代码解析:

Fastmark过程使用快捷记号为单元格区域赋值。

第2行代码使用快捷记号将活动工作表中的A1:A5单元格赋值为2。

第3行代码将工作簿中已命名为“Fast”的单元格区域赋值为4。

注意 使用快捷记号引用单元格区域时只能使用固定字符串而不能使用变量。

4、使用Offset属性

可以使用Range对象的Offset属性返回一个基于引用的Range对象的单元格区域,如下面的代码所示。

1. Sub Offset()

2. Sheet3.Range("A1:C3").Offset(3, 3).Select 3. End Sub 复制代码

代码解析:

Offset过程使用Range对象的Offset属性选中A1:A3单元格偏移三行三列后的区域。 应用于Range对象的Offset 属性的语法如下:

expression.Offset(RowOffset, ColumnOffset)

参数expression是必需的,该表达式返回一个Range对象。

参数RowOffset是可选的,区域偏移的行数(正值、负值或 0(零))。正值表示向下偏移,负值表示向上偏移,默认值为 0。

参数ColumnOffset是可选的,区域偏移的列数(正值、负值或 0(零))。正值表示向右偏移,负值表示向左偏移,默认值为 0。

运行Offset过程,选中A1:A3单元格偏称三行三列后的区域,如图2所示。

图2 使用Range对象的Offset属性

5、使用Resize属性

使用Range对象的Resize属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示。

1. Sub Resize()

2. Sheet4.Range("A1").Resize(3, 3).Select

本文已影响