VBA常用技巧代码解析(12页).doc
-VBA常用技巧代码解析-第 12 页VBA常用技巧代码解析5683-1-1.html大家在学习VBA的过程中,相信都有收集代码的习惯,我也是,硬盘中藏有许多VBA实例、代码,在去年VBA精粹的写作过程中更是在网络上收集了大量的VBA资料。这些散布在各处的代码、实例对学习的帮助很大,但是查找起来很不方便,有时明明知道有某个例子,就是找不到,因此萌生了将这部分VBA资料进行整理的想法。 在写作VBA精粹一书时发现使用Word的文档结构图和目录的功能在查找资料时很方便,便使用VBA精粹的Word模板对资料进行了初步整理,计划用半年时间完成全部内容,目前已完成目录和第一部分内容,弊帚不敢自珍,将整理内容同步发在论坛上,希望对大家的学习有所帮助,也请大家指出其不足、错误之处。在完成全部内容后我会将Word文档上传。<Word文档及附件请到9楼下载,仅供EH会员学习交流之用,请勿传播,谢绝转载> 2009-2-10 10:59 上传下载附件 (99.08 KB) 声明 上传的附件在XP+Excel2003环境中进行过测试,其他版本未经测试,不能保证代码运行正确。部分代码出自论坛,有些已经找不到链接了,在此一并感谢原作者,在下面的内容中就不一一言明出处了。 本帖最后由 yuanzhuping 于 2010-6-12 16:00 编辑 第1部分 Range(单元格)对象技巧1 单元格的引用方法1-1 使用Range属性 -10楼1-2 使用Cells属性 -11楼1-3 使用快捷记号 -11楼1-4 使用Offset属性 -12楼1-5 使用Resize属性 -13楼1-6 使用Union方法 -14楼1-7 使用UsedRange属性 -15楼1-8 使用CurrentRegion属性 -16楼技巧2 选定单元格区域的方法2-1 使用Select方法 -19楼2-2 使用Activate方法 -20楼2-3 使用Goto方法 -21楼技巧3 获得指定行、列中的最后一个非空单元格 -22楼技巧4 定位单元格 -26楼技巧5 查找单元格5-1 使用Find方法 -33楼5-2 使用Like运算符 -34楼技巧6 替换单元格内字符串 -36楼技巧7 复制单元格区域 -37楼技巧8 仅复制数值到另一区域8-1 使用选择性粘贴 -41楼8-2 直接赋值的方法 -41楼技巧9 单元格自动进入编辑状态 -43楼技巧10 禁用单元格拖放功能 -44楼技巧11 单元格格式操作11-1 单元格字体格式设置 -48楼11-2 设置单元格内部格式 -49楼11-3 为单元格区域添加边框 -52楼11-4 灵活设置单元格的行高列宽 -53楼技巧12 单元格中的数据有效性12-1 在单元格中建立数据有效性 -62楼12-2 判断单元格是否存在数据有效性 -62楼12-3 动态的数据有效性 -62楼12-4 自动展开数据有效性下拉列表 -62楼技巧13 单元格中的公式13-1 在单元格中写入公式 -64楼13-2 检查单元格是否含有公式 -64楼13-3 判断单元格公式是否存在错误 -64楼13-4 取得单元格中公式的引用单元格 -64楼13-5 将单元格中的公式转换为数值 -64楼技巧14 单元格中的批注14-1 判断单元格是否存在批注 -80楼14-2 为单元格添加批注 -80楼14-3 删除单元格中的批注 -80楼技巧15 合并单元格操作15-1 判断单元格区域是否存在合并单元格 -81楼15-2 合并单元格时连接每个单元格的文本 -82楼15-3 合并内容相同的连续单元格 -83楼15-4 取消合并单元格时在每个单元格中保留内容 -84楼技巧16 高亮显示单元格区域 -90楼技巧17 双击被保护单元格时不显示提示消息框 -91楼技巧18 重新计算工作表指定区域 -92楼技巧19 单元格录入数据后自动保护 -94楼技巧20 工作表事件Target参数的使用方法20-1 使用Address 属性 -95楼20-2 使用Column属性和Row属性 -95楼20-3 使用Intersect方法 -95楼第1部分Range(单元格)对象的Word文档和附件 -97楼第2部分 Worksheet(工作表)对象技巧21 引用工作表的方式21-1 使用工作表的名称 -103楼21-2 使用工作表的索引号 -103楼21-3 使用工作表的代码名称 -103楼21-4 使用ActiveSheet属性引用活动工作表 -103楼技巧22 选择工作表的方法 -110楼技巧23 遍历工作表的方法23-1 使用For.Next 语句 -113楼23-2 使用For Each.Next 语句 -125楼技巧24 在工作表中上下翻页 -126楼技巧25 工作表的添加与删除 -144楼技巧26 禁止删除指定工作表 -146楼技巧27 自动建立工作表目录 -147楼技巧28 工作表的深度隐藏 -153楼技巧29 防止更改工作表的名称 -154楼技巧30 工作表中一次插入多行 -156楼技巧31 删除工作表中的空行 -157楼技巧32 删除工作表的重复行 -161楼技巧33 定位删除特定内容所在的行 -162楼技巧34 判断是否选中整行 -163楼技巧35 限制工作表的滚动区域 -167楼技巧36 复制自动筛选后的数据区域 -170楼技巧37 使用高级筛选获得不重复记录 -171楼技巧38 工作表的保护与解除保护 -174楼技巧39 奇偶页打印 -198楼第2部分Worksheet(工作表)对象的Word文档和附件 -199楼第3部分 Wordbook(工作簿)对象技巧40 工作簿的引用方法40-1 使用工作簿的名称 -212楼40-2 使用工作簿的索引号 -212楼40-3 使用ThisWorkbook -212楼40-4 使用ActiveWorkbook -212楼技巧41 新建工作簿文件 -223楼技巧42 打开指定的工作簿 -224楼技巧43 判断指定工作簿是否打开43-1 遍历Workbooks集合方法 -225楼43-2 错误处理方法 -225楼技巧44 禁用宏则关闭工作簿 -233楼技巧45 关闭工作簿不显示保存对话框45-1 使用Close方法关闭工作簿 -234楼45-2 单击工作簿关闭按钮关闭工作簿 -234楼技巧46 禁用工作簿的关闭按钮 -235楼技巧47 保存工作簿的方法47-1 使用Save方法 -246楼47-2 直接保存为另一文件名 -246楼47-3 保存工作簿副本 -246楼技巧48 保存指定工作表为工作簿文件 -247楼技巧49 打印预览时不触发事件 -251楼技巧50 设置工作簿文档属性信息 -253楼技巧51 不打开工作簿取得其他工作簿数据51-1 使用公式 -264楼51-2 使用GetObject函数 -264楼51-3 隐藏Application对象 -264楼51-4 使用ExecuteExcel4Macro方法 -264楼51-5 使用SQL连接 -264楼技巧52 返回窗口的可视区域地址 -283楼第3部分Wordbook(工作簿)对象的Word文档和附件 -287楼第4部分 Shape(图形)、Chart(图表)对象技巧53 在工作表中添加图形 -291楼技巧54 导出工作表中的图片 -296楼技巧55 在工作表中添加艺术字 -302楼技巧56 遍历工作表中的图形 -306楼技巧57 移动、旋转图片 -311楼技巧58 工作表中自动插入图片 -313楼技巧59 固定工作表中图形的位置 -317楼技巧60 使用VBA自动生成图表 -339楼技巧61 使用独立窗口显示图表 -345楼技巧62 导出工作表中的图表 -350楼技巧63 多图表制作 -364楼第4部分 Shape(图形)、Chart(图表)对象附件及1-4部分文档 -367楼第5部分 Application对象技巧64 取得Microsoft Excel版本信息 -368楼技巧65 取得当前用户名称 -369楼技巧66 Excel中的“定时器” -370楼技巧67 设置活动打印机的名称 -371楼技巧68 屏蔽、改变组合键的功能 -378楼技巧69 设置Excel窗口标题栏 -386楼技巧70 自定义Excel状态栏 -387楼技巧71 灵活退出Excel -393楼技巧72 隐藏Excel主窗口72-1 设置Application对象的Visible属性 -395楼72-2 将窗口移出屏幕 -395楼72-3 设置工作簿作为加载宏运行 -395楼第5部分 Application对象附件及1-5部分文档 -396楼第6部分 使用对话框技巧73 使用Msgbox函数73-1 显示简单的提示信息 -409楼73-2 定制个性化的消息框 -409楼73-3 获得消息框的返回值 -409楼73-4 在消息框中排版 -409楼73-5 对齐消息框中显示的信息 -409楼技巧74 自动关闭的消息框74-1 使用WshShell.Popup方法显示消息框 -411楼74-2 使用API函数显示消息框 -411楼技巧75 使用InputBox函数75-1 简单的数据输入 -413楼75-2 使用对话框输入密码 -413楼技巧76 使用InputBox方法76-1 输入指定类型的数据 -421楼76-2 获得单元格区域地址 -421楼技巧77 使用对话框77-1 调用内置的对话框 -440楼77-2 获取选定文件的文件名 -440楼77-3 使用“另存为”对话框 -440楼技巧78 调用操作系统“关于”对话框 -444楼第6部分 使用对话框附件及1-6部分Word文档 -449楼第7部分 菜单和工具栏技巧79 在菜单中添加菜单项 -467楼技巧80 在菜单栏指定位置添加菜单 -468楼技巧81 屏蔽和删除工作表菜单 -476楼技巧82 改变系统菜单的操作 -477楼技巧83 定制自己的系统菜单 -478楼技巧84 改变菜单按钮图标 -489楼技巧85 右键快捷菜单增加菜单项 -497楼技巧86 自定义右键快捷菜单 -504楼技巧87 使用右键菜单制作数据有效性 -505楼技巧88 禁用工作表右键菜单 -506楼技巧89 创建自定义工具栏 -518楼技巧90 自定义工具栏按钮图标 -519楼技巧91 自定义工作簿图标 -520楼技巧92 移除工作表的最小最大化和关闭按钮 -530楼技巧93 在工具栏上添加下拉列表框 -536楼技巧94 屏蔽工作表的复制功能 -537楼技巧95 禁用工具栏的自定义 -548楼技巧96 屏蔽所有的命令栏 -559楼技巧97 恢复Excel的命令栏 -560楼第7部分 菜单和工具栏附件及1-7部分Word文档 -562楼第8部分 控件与用户窗体技巧98 限制文本框的输入 -568楼技巧99 文本框添加右键快捷菜单 -573楼技巧100 文本框回车自动输入 -581楼技巧101 自动选择文本框内容 -582楼技巧102 设置文本框数据格式 -583楼技巧103 限制文本框的输入长度 -584楼技巧104 将光标返回文本框中 -619楼技巧105 文本框的自动换行 -620楼技巧106 多个文本框数据相加 -629楼技巧107 控件跟随活动单元格 -630楼技巧108 高亮显示按钮 -634楼技巧109 组合框和列表框添加列表项的方法109-1 使用RowSource属性添加列表项 -638楼109-2 使用List属性添加列表项 -639楼109-3 使用AddItem方法添加列表项 -640楼技巧110 去除列表框数据源的重复值和空格 -642楼技巧111 移动列表框条目 -642楼技巧112 允许多项选择的列表框 -643楼技巧113 多列组合框和列表框的设置113-1 多列组合框和列表框添加列表项 -646楼113-2 多列列表框写入工作表 -647楼技巧114 输入时逐步提示信息 -679楼技巧115 二级组合框 -694楼技巧116 使用DTP控件输入日期 -698楼技巧117 使用RefEdit控件选择区域 -707楼技巧118 如何注册控件 -723楼技巧119 遍历控件的方法119-1 使用名称中的变量遍历控件 -730楼119-2 使用对象类型遍历控件 -731楼119-3 使用程序标识符遍历控件 -732楼119-4 使用名称中的变量遍历图形 -733楼119-5 使用FormControlType属性遍历图形 -734楼技巧120 使微调框最小变动量小于1 -736楼技巧121 不打印工作表中的控件121-1 设置控件格式 -737楼121-2 设置控件的printobjcet属性 -737楼技巧122 在框架中使用滚动条 -750楼技巧123 使用多页控件 -757楼技巧124 标签文字垂直居中对齐 -774楼技巧125 使用TabStrip控件 -791楼技巧126 显示GIF动画图片 -803楼技巧127 播放Flash文件 -804楼技巧128 在工作表中添加窗体控件128-1 使用AddFormControl方法 -844楼128-2 使用Add方法 -844楼技巧129 在工作表中添加ActiveX控件129-1 使用Add方法 -854楼129-2 使用AddOLEObject方法 -854楼技巧130 使用spreadsheet控件 -865楼技巧131 使用Listview控件131-1 使用Listview控件显示数据列表 -876楼131-2 在Listview控件中使用复选框 -887楼131-3 调整Listview控件的行距 -892楼131-4 在Listview控件中排序 -901楼131-5 Listview控件的图标设置 -908楼技巧132 调用非模式窗体 -925楼技巧133 进度条的制作133-1 使用进度条控件 -926楼133-2 使用标签控件 -927楼技巧134 使用TreeView控件显示层次 -931楼技巧135 用户窗体添加图标 -937楼技巧136 用户窗体添加最大最小化按纽 -938楼技巧137 禁用窗体标题栏的关闭按钮 -939楼技巧138 屏蔽窗体标题栏的关闭按钮 -947楼技巧139 无标题栏和边框的窗体 -948楼技巧140 制作年月选择窗体 -950楼技巧141 自定义窗体中的鼠标指针类型 -951楼技巧142 调整窗体的显示位置 -959楼技巧143 由鼠标确定窗体显示位 -960楼技巧144 用户窗体的打印 -962楼技巧145 使用自定义颜色设置窗体颜色 -963楼技巧146 在窗体中显示图表146-1 使用Export方法 -974楼146-2 使用API函数 -974楼技巧147 窗体运行时调整控件大小 -977楼技巧148 在用户窗体上添加菜单 -987楼技巧149 在用户窗体上添加工具栏 -994楼技巧150 使用代码添加窗体及控件 -1009楼 1_8部分的Word文档和附件 -1014楼技巧151 用户窗体的全屏显示 151-1 设置用户窗体为应用程序的大小 -1095楼 151-2 根据屏幕分辨率进行设置 -1095楼技巧152 在用户窗体上添加状态栏 -1112楼第9部分 函数的使用技巧153 调用工作表函数求和 -1117楼技巧154 查找最大、最小值 -1122楼技巧155 不重复值的录入 -1131楼技巧156 获得当月的最后一天 -1135楼技巧157 四舍五入运算157-1 极小值修正法 -1144楼157-2 调用工作表函数法 -1144楼技巧158 使用字符串函数 -1148楼技巧159 使用日期函数 -1153楼技巧160 判断是否为数值 -1194楼技巧161 格式化数值、日期和时间 -1200楼技巧162 计算个人所得税 -1205楼技巧163 人民币大写函数 -1215楼技巧164 列号转换为列标 -1217楼技巧165 判断工作表是否为空表 -1238楼技巧166 查找指定工作表 -1240楼技巧167 查找指定工作簿是否打开 -1242楼技巧168 取得应用程序的安装路径 -1253楼技巧169 数组的使用169-1 代码运行时创建数组 -1271楼169-2 文本转换为数组 -1271楼169-3 使用动态数组去除重复值 -1271楼1-9部分Word文档及附件 -1272楼第10部分 文件操作技巧170 导入文本文件170-1 使用查询表导入 -1290楼170-2 使用Open 语句导入 -1290楼170-3 使用OpenText方法 -1290楼技巧171 将数据写入文本文件171-1 使用Print # 语句 -1292楼171-2 另存为文本文件 -1292楼技巧172 文件修改的日期和时间 -1309楼技巧173 查找文件或文件夹 -1321楼技巧174 获得当前文件夹的名称 -1326楼技巧175 创建和删除文件夹 -1339楼技巧176 重命名文件或文件夹 -1340楼技巧177 复制指定的文件 -1353楼技巧178 删除指定的文件 -1357楼技巧179 搜索特定的文件 -1359楼技巧180 使用WSH处理文件180-1 获取文件信息 -1373楼180-2 查找文件 -1374楼180-3 移动文件 -1375楼180-4 复制文件 -1376楼180-5 删除文件 -1377楼180-6 创建文件夹 -1378楼180-7 复制文件夹 -1379楼180-8 移动文件夹 -1383楼180-9 删除文件夹 -1384楼180-10 导入文本文件 -1388楼180-11 创建文本文件 -1396楼1-10部分Word文档及附件 -1399楼第11部分 其他应用技巧181 取得电脑名称 -1423楼技巧182 取得逻辑盘序列号 -1425楼技巧183 使用API取得硬盘信息 -1426楼技巧184 使用数字签名 -1427楼技巧185 暂停代码的运行 -1437楼技巧186 定时关机 -1444楼技巧187 打开指定的网页 -1445楼技巧188 VBE的操作 188-1 添加模块和过程 -1463楼 188-2 建立事件过程 -1464楼 188-3 模块的导入与导出 -1479楼 188-4 删除宏代码 -1499楼技巧189 保护VBA代码 189-1 设置工程密码 -1510楼 189-2 设置“工程不可查看” -1510楼技巧190 优化代码 190-1 关闭屏幕刷新 -1515楼 190-2 使用工作表函数 -1516楼 190-3 使用更快的单元格操作方法 -1518楼 190-4 使用With语句引用对象 -1522楼 190-5 少用激活或选择语句 -1523楼技巧191 取得文件的基本名称 -1526楼技巧192 防止用户中断代码运行 -1542楼技巧193 加班费计算表 -1582楼技巧194 制作发放条 -1595楼技巧195 费用统计表 -1598楼技巧196 职工花名册 -1588楼技巧197 收据系统 -1642楼技巧198 职工考勤系统 -1967楼2009-9-7 更新文档,请下载完全部压缩文件后一起解压缩。 (1.91 MB, 下载次数: 128801) (1.91 MB, 下载次数: 118682) (1.91 MB, 下载次数: 122238) (1.91 MB, 下载次数: 119909) (1.91 MB, 下载次数: 117428) (768.18 KB, 下载次数: 94109) 附件,请下载完全部压缩文件后一起解压缩。 (1.91 MB, 下载次数: 9379) (1.91 MB, 下载次数: 57993) (1.91 MB, 下载次数: 51028) (1.4 MB, 下载次数: 48475) 鉴于示例文件1经常出错导致不能下载,请大家到此处下载:感谢ybzdexcel 兄整理制作了电子书,请到 . p;page=1#pid3482982下载根据此贴内容并以2007版本重新整理的Excel VBA 常用代码实战大全一书已由北京工业出版社出版,喜欢纸质书的朋友可去新华书店或各大网站订购。(呵呵,做个小小广告)第1部分Range(单元格)对象Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel 内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性。技巧1 单元格的引用方法 在VBA中经常需要引用单元格或单元格区域区域,主要有以下几种方法。1-1 使用Range属性 VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示。普通浏览复制代码1. #001 Sub RngSelect() 2. #002 Sheet1.Range("A3:F6, B1:C5").Select3. #003 End Sub代码解析: RangeSelect过程使用Select方法选中A3:F6,B1:C5单元格区域。 Range属性返回一个Range对象,该对象代表一个单元格或单元格区域,语法如下:Range(Cell1, Cell2) 参数Cell1是必需的,必须为 A1 样式引用的宏语言,可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。也可包括美元符号(即绝对地址,如“$A$1”)。可在区域中任一部分使用局部定义名称,如Range("B2:LastCell"),其中LastCell为已定义的单元格区域名称。 参数Cell2是可选的,区域左上角和右下角的单元格。 运行RangeSelect过程,选中A3:F6, B1:C5单元格区域,如图所示。