收藏 分享(赏)

Excel_VBA常用技巧代码解析.doc

上传人:tangtianxu1 文档编号:3096130 上传时间:2018-10-03 格式:DOC 页数:607 大小:17.97MB
下载 相关 举报
Excel_VBA常用技巧代码解析.doc_第1页
第1页 / 共607页
Excel_VBA常用技巧代码解析.doc_第2页
第2页 / 共607页
Excel_VBA常用技巧代码解析.doc_第3页
第3页 / 共607页
Excel_VBA常用技巧代码解析.doc_第4页
第4页 / 共607页
Excel_VBA常用技巧代码解析.doc_第5页
第5页 / 共607页
点击查看更多>>
资源描述

1、VBA 常用技巧代码解析 回页首1VBA常用技巧代码解析目录目录VBA常用技巧 1第 1 章 Range(单元格)对象 10技巧 1 单元格的引用方法 101-1 使用 Range属性 101-2 使用 Cells属性 111-3 使用快捷记号 111-4 使用 Offset属性 121-5 使用 Resize属性 121-6 使用 Union方法 121-7 使用 UsedRange属性 121-8 使用 CurrentRegion属性 12技巧 2 选定单元格区域的方法 122-1 使用 Select方法 122-2 使用 Activate方法 122-3 使用 Goto方法 12技巧 3

2、 获得指定行、列中的最后一个非空单元格 12技巧 4 定位单元格 12技巧 5 查找单元格 125-1 使用 Find方法 125-2 使用 Like运算符 12技巧 6 替换单元格内字符串 12技巧 7 复制单元格区域 12技巧 8 仅复制数值到另一区域 128-1 使用选择性粘贴 128-2 直接赋值的方法 12技巧 9 单元格自动进入编辑状态 12技巧 10 禁用单元格拖放功能 12技巧 11 单元格格式操作 1211-1 单元格字体格式设置 1211-2 设置单元格内部格式 1211-3 为单元格区域添加边框 1211-4 灵活设置单元格的行高列宽 12技巧 12 单元格中的数据有效性

3、 1212-1 在单元格中建立数据有效性 1212-2 判断单元格是否存在数据有效性 1212-3 动态的数据有效性 1212-4 自动展开数据有效性下拉列表 12VBA 常用技巧代码解析 回页首2技巧 13 单元格中的公式 1213-1 在单元格中写入公式 1213-2 检查单元格是否含有公式 1213-3 判断单元格公式是否存在错误 1213-4 取得单元格中公式的引用单元格 1213-5 将单元格中的公式转换为数值 12技巧 14 单元格中的批注 1214-1 判断单元格是否存在批注 1214-2 为单元格添加批注 1214-3 删除单元格中的批注 12技巧 15 合并单元格操作 121

4、5-1 判断单元格区域是否存在合并单元格 1215-2 合并单元格时连接每个单元格的文本 1215-3 合并内容相同的连续单元格 1215-4 取消合并单元格时在每个单元格中保留内容 12技巧 16 高亮显示单元格区域 12技巧 17 双击被保护单元格时不显示提示消息框 12技巧 18 重新计算工作表指定区域 12技巧 19 录入数据后单元格自动保护 12技巧 20 工作表事件 Target参数的使用方法 1220-1 使用单元格的 Address 属性 1220-2 使用 Column属性和 Row属性 1220-3 使用 Intersect方法 12第 2章 Worksheet(工作表)

5、对象 12技巧 21 引用工作表的方式 1221-1 使用工作表的名称 1221-2 使用工作表的索引号 1221-3 使用工作表的代码名称 1221-4 使用 ActiveSheet属性引用活动工作表 12技巧 22 选择工作表的方法 12技巧 23 遍历工作表的方法 1223-1 使用 For.Next 语句 1223-2 使用 For Each.Next 语句 12技巧 24 在工作表中上下翻页 12技巧 25 工作表的添加与删除 12技巧 26 禁止删除指定工作表 12技巧 27 自动建立工作表目录 12技巧 28 工作表的深度隐藏 12技巧 29 防止更改工作表的名称 12技巧 30

6、 工作表中一次插入多行 12技巧 31 删除工作表中的空行 12技巧 32 删除工作表的重复行 12技巧 33 定位删除特定内容所在的行 12VBA 常用技巧代码解析 回页首3技巧 34 判断是否选中整行 12技巧 35 限制工作表的滚动区域 12技巧 36 复制自动筛选后的数据区域 12技巧 37 使用高级筛选获得不重复记录 12技巧 38 工作表的保护与解除保护 12技巧 39 奇偶页打印 12第 3章 Wordbook(工作簿)对象 12技巧 40 工作簿的引用方法 1240-1 使用工作簿的名称 1240-2 使用工作簿的索引号 1240-3 使用 ThisWorkbook 1240-

7、4 使用 ActiveWorkbook 12技巧 41 新建工作簿文件 12技巧 42 打开指定的工作簿 12技巧 43 判断指定工作簿是否打开 1243-1 遍历 Workbooks集合方法 1243-2 错误处理方法 12技巧 44 禁用宏则关闭工作簿 12技巧 45 关闭工作簿不显示保存对话框 1245-1 使用 Close方法关闭工作簿 1245-2 单击工作簿关闭按钮关闭工作簿 12技巧 46 禁用工作簿的关闭按钮 12技巧 47 保存工作簿的方法 1247-1 使用 Save方法 1247-2 直接保存为另一文件名 1247-3 保存工作簿副本 12技巧 48 保存指定工作表为工作

8、簿文件 12技巧 49 打印预览时不触发事件 12技巧 50 设置工作簿文档属性信息 12技巧 51 不打开工作簿取得其他工作簿数据 1251-1 使用公式 1251-2 使用 GetObject函数 1251-3 隐藏 Application对象 1251-4 使用 ExecuteExcel4Macro方法 1251-5 使用 SQL连接 12技巧 52 返回窗口的可视区域地址 12第 4章 Shape(图形) 、Chart(图表)对象 12技巧 53 在工作表中添加图形 12技巧 54 导出工作表中的图片 12技巧 55 在工作表中添加艺术字 12技巧 56 遍历工作表中的图形 12技巧

9、57 移动、旋转图片 12技巧 58 工作表中自动插入图片 12VBA 常用技巧代码解析 回页首4技巧 59 固定工作表中图形的位置 12技巧 60 使用 VBA自动生成图表 12技巧 61 使用独立窗口显示图表 12技巧 62 导出工作表中的图表 12技巧 63 多图表制作 12第 5章 Application对象 12技巧 64 取得 Excel版本信息 12技巧 65 取得当前用户名称 12技巧 66 Excel中的“定时器” 12技巧 67 设置活动打印机的名称 12技巧 68 屏蔽、改变组合键的功能 12技巧 69 设置 Excel窗口标题栏 12技巧 70 自定义 Excel状态栏

10、 12技巧 71 灵活退出 Excel 12技巧 72 隐藏 Excel主窗口 1272-1 设置 Application对象的 Visible属性 1272-2 将窗口移出屏幕 1272-3 设置工作簿作为加载宏运行 12第 6章 使用对话框 12技巧 73 使用 Msgbox函数 1273-1 显示简单的提示信息 1273-2 定制个性化的消息框 1273-3 获得消息框的返回值 1273-4 在消息框中排版 1273-5 对齐消息框中显示的信息 12技巧 74 自动关闭的消息框 1274-1 使用 WshShell.Popup方法显示消息框 1274-2 使用 API函数显示消息框 12

11、技巧 75 使用 InputBox函数 1275-1 简单的数据输入 1275-2 使用对话框输入密码 12技巧 76 使用 InputBox方法 1276-1 输入指定类型的数据 1276-2 获得单元格区域地址 12技巧 77 内置对话框 1277-1 调用内置的对话框 1277-2 获取选定文件的文件名 1277-3 使用“另存为”对话框 12技巧 78 调用操作系统“关于”对话框 12第 7章 菜单和工具栏 12技巧 79 在菜单中添加菜单项 12技巧 80 在菜单栏指定位置添加菜单 12技巧 81 屏蔽和删除工作表菜单 12技巧 82 改变系统菜单的操作 12VBA 常用技巧代码解析

12、 回页首5技巧 83 定制自己的系统菜单 12技巧 84 改变菜单按钮图标 12技巧 85 右键快捷菜单增加菜单项 12技巧 86 自定义右键快捷菜单 12技巧 87 使用右键菜单制作数据有效性 12技巧 88 禁用工作表右键菜单 12技巧 89 创建自定义工具栏 12技巧 90 自定义工具栏按钮图标 12技巧 91 自定义工作簿图标 12技巧 92 移除工作表的最小最大化和关闭按钮 12技巧 93 在工具栏上添加下拉列表框 12技巧 94 屏蔽工作表的复制功能 12技巧 95 禁用工具栏的自定义 12技巧 96 屏蔽所有的命令栏 12技巧 97 恢复 Excel的命令栏 12第 8章 控件与

13、用户窗体 12技巧 98 限制文本框的输入 12技巧 99 文本框添加右键快捷菜单 12技巧 100文本框回车自动输入 12技巧 101自动选择文本框内容 12技巧 102设置文本框数据格式 12技巧 103限制文本框的输入长度 12技巧 104将光标返回文本框中 12技巧 105文本框的自动换行 12技巧 106多个文本框数据相加 12技巧 107控件跟随活动单元格 12技巧 108高亮显示按钮 12技巧 109组合框和列表框添加列表项的方法 12109-1 使用 RowSource属性添加列表项 12109-2 使用 List属性添加列表项 12109-3 使用 AddItem方法添加列表

14、项 12技巧 110去除列表框数据源的重复值和空格 12技巧 111移动列表框条目 12技巧 112允许多项选择的列表框 12技巧 113多列组合框和列表框的设置 12113-1 多列组合框和列表框添加列表项 12113-2 多列列表框写入工作表 12技巧 114输入时逐步提示信息 12技巧 115二级组合框 12技巧 116使用 DTP控件输入日期 12技巧 117使用 RefEdit控件选择区域 12技巧 118如何注册控件 12技巧 119遍历控件的方法 12119-1 使用名称中的变量遍历控件 12VBA 常用技巧代码解析 回页首6119-2 使用对象类型遍历控件 12119-3 使用

15、程序标识符遍历控件 12119-4 使用名称中的变量遍历图形 12119-5 使用 FormControlType属性遍历图形 12技巧 120使微调框最小变动量小于 112技巧 121不打印工作表中的控件 12121-1 设置控件格式 12121-2 设置控件的 printobjcet属性 12技巧 122在框架中使用滚动条 12技巧 123使用多页控件 12技巧 124标签文字垂直居中对齐 12技巧 125使用 TabStrip控件 12技巧 126显示 GIF动画图片 12技巧 127播放 Flash文件 12技巧 128在工作表中添加窗体控件 12128-1 使用 AddFormCon

16、trol方法 12128-2 使用 Add方法 12技巧 129在工作表中添加 ActiveX控件 12129-1 使用 Add方法 12129-2 使用 AddOLEObject方法 12技巧 130使用 spreadsheet控件 12技巧 131使用 Listview控件 12131-1 使用 Listview控件显示数据列表 12131-2 在 Listview控件中使用复选框 12131-3 调整 Listview控件的行距 12131-4 在 Listview控件中排序 12131-5 Listview控件的图标设置 12技巧 132调用非模式窗体 12技巧 133进度条的制作 1

17、2133-1 使用进度条控件 12133-2 使用标签控件 12技巧 134使用 TreeView控件显示层次 12技巧 135用户窗体添加图标 12技巧 136用户窗体添加最大最小化按纽 12技巧 137禁用窗体标题栏的关闭按钮 12技巧 138屏蔽窗体标题栏的关闭按钮 12技巧 139无标题栏和边框的窗体 12技巧 140制作年月选择窗体 12技巧 141自定义窗体中的鼠标指针类型 12技巧 142调整窗体的显示位置 12技巧 143由鼠标确定窗体显示位置 12技巧 144用户窗体的打印 12技巧 145使用自定义颜色设置窗体颜色 12技巧 146在窗体中显示图表 12VBA 常用技巧代码

18、解析 回页首7146-1 使用 Export方法 12146-2 使用 API函数 12技巧 147窗体运行时调整控件大小 12技巧 148在用户窗体上添加菜单 12技巧 149在用户窗体上添加工具栏 12技巧 150使用代码添加窗体及控件 12技巧 151用户窗体的全屏显示 12151-1 设置用户窗体为应用程序的大小 12151-2 根据屏幕分辨率进行设置 12技巧 152在用户窗体上添加状态栏 12第 9章 函数的使用 12技巧 153调用工作表函数求和 12技巧 154查找最大、最小值 12技巧 155不重复值的录入 12技巧 156获得当月的最后一天 12技巧 157四舍五入运算 1

19、2157-1 极小值修正法 12157-2 调用工作表函数法 12技巧 158使用字符串函数 12技巧 159使用日期函数 12技巧 160判断是否为数值 12技巧 161格式化数值、日期和时间 12技巧 162个人所得税自定义函数 12技巧 163人民币大写函数 12技巧 164列号转换为列标 12技巧 165判断工作表是否为空表 12技巧 166查找指定工作表 12技巧 167查找指定工作簿是否打开 12技巧 168取得应用程序的安装路径 12技巧 169数组的使用 12169-1 代码运行时创建数组 12169-2 文本转换为数组 12169-3 使用动态数组去除重复值 12第 10章

20、文件操作 12技巧 170导入文本文件 12170-1 使用查询表导入 12170-2 使用 Open 语句导入 12170-3 使用 OpenText方法 12技巧 171将数据写入文本文件 12171-1 使用 Print # 语句 12171-2 另存为文本文件 12技巧 172文件修改的日期和时间 12技巧 173查找文件或文件夹 12技巧 174获得当前文件夹的名称 12VBA 常用技巧代码解析 回页首8技巧 175创建和删除文件夹 12技巧 176重命名文件或文件夹 12技巧 177复制指定的文件 12技巧 178删除指定的文件 12技巧 179搜索特定的文件 12技巧 180使用

21、 WSH处理文件 12180-1 获取文件信息 12180-2 查找文件 12180-3 移动文件 12180-4 复制文件 12180-5 删除文件 12180-6 创建文件夹 12180-7 复制文件夹 12180-8 移动文件夹 12180-9 删除文件夹 12180-10 导入文本文件 12180-11 创建文本文件 12第 11章 其他应用 12技巧 181取得电脑名称 12技巧 182取得逻辑盘序列号 12技巧 183使用 API取得硬盘信息 12技巧 184使用数字签名 12技巧 185暂停代码的运行 12技巧 186定时关机 12技巧 187打开指定的网页 12技巧 188VB

22、E的操作 12188-1 添加模块和过程 12188-2 建立事件过程 12188-3 模块的导入与导出 12188-4 删除宏代码 12技巧 189保护 VBA代码 12189-1 设置工程密码 12189-2 设置“工程不可查看” 12技巧 190优化代码 12190-1 关闭屏幕刷新 12190-2 使用工作表函数 12190-3 使用更快的单元格操作方法 12190-4 使用 With语句引用对象 12190-5 少用激活或选择语句 12技巧 191取得文件的基本名称 12技巧 192防止用户中断代码运行 12技巧 193加班费计算表 12技巧 194制作发放条 12技巧 195费用统

23、计表 12VBA 常用技巧代码解析 回页首9技巧 196职工花名册 12技巧 197收据系统 12技巧 198职工考勤系统 12VBA 常用技巧代码解析 回页首10第 1 章 Range(单元格)对象Range 对象是 Excel 应用程序中最常用的对象,一个 Range 对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作 Excel 内的任何区域之前都需要将其表示为一个 Range 对象,然后使用该 Range 对象的方法和属性。技巧 1 单元格的引用方法在 VBA 中经常需要引用单元

24、格或单元格区域区域,主要有以下几种方法。1-1 使用 Range 属性VBA 中可以使用 Range 属性返回单元格或单元格区域,如下面的代码所示。#001 Sub RngSelect() #002 Sheet1.Range(“A3:F6, B1:C5“).Select#003 End Sub代码解析:RngSelect 过程使用 Select 方法选中 A3:F6,B1:C5 单元格区域。Range 属性返回一个 Range 对象,该对象代表一个单元格或单元格区域,语法如下:Range(Cell1, Cell2)参数 Cell1 是必需的,必须为 A1 样式引用的宏语言,可包括区域操作符(冒

25、号) 、相交区域操作符(空格)或合并区域操作符(逗号) 。也可包括美元符号(即绝对地址,如“$A$1”) 。可在区域中任一部分使用局部定义名称,如 Range(“B2:LastCell“),其中LastCell 为已定义的单元格区域名称。参数 Cell2 是可选的,区域左上角和右下角的单元格。运行 Sub RngSelect 过程,选中 A3:F6, B1:C5 单元格区域,如 图 1-1 所示。VBA 常用技巧代码解析 回页首11图 1-1 使用 Range 属性引用单元格区域注意 如果没有使用对象识别符,Range 属性返回活动表的一个区域,如果活动表不是工作表,则该属性无效。1-2 使用

26、 Cells 属性使用 Cells 属性返回一个 Range 对象,如下面的代码所示。#001 Sub Cell()#002 Dim icell As Integer#003 For icell = 1 To 100#004 Sheet2.Cells(icell, 1).Value = icell#005 Next#006 End Sub代码解析:Cell 过程使用 For.Next 语句为工作表中的 A1:A100 单元格区域填入序号。Cells 属性指定单元格区域中的单元格,语法如下:Cells(RowIndex, ColumnIndex)参数 RowIndex 是可选的,表示引用区域中的

27、行序号。参数 ColumnIndex 是可选的,表示引用区域中的列序号。如果缺省参数,Cells 属性返回引用对象的所有单元格。Cells 属性的参数可以使用变量,因此经常应用于在单元格区域中循环。1-3 使用快捷记号在 VBA 中可以将 A1 引用样式或命名区域名称使用方括号括起来,作为 Range 属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示。VBA 常用技巧代码解析 回页首12#001 Sub Fastmark()#002 A1:A5 = 2#003 Fast = 4#004 End Sub代码解析:Fastmark 过程使用快捷记号为单元格区域赋值。第

28、2 行代码使用快捷记号将活动工作表中的 A1:A5 单元格赋值为 2。第 3 行代码将工作簿中已命名为“Fast”的单元格区域赋值为 4。注意 使用快捷记号引用单元格区域时只能使用固定字符串而不能使用变量。1-4 使用 Offset 属性可以使用 Range 对象的 Offset 属性返回一个基于引用的 Range 对象的单元格区域,如下面的代码所示。#001 Sub Offset()#002 Sheet3.Range(“A1:C3“).Offset(3, 3).Select#003 End Sub代码解析:Offset 过程使用 Range 对象的 Offset 属性选中 A1:A3 单元格

29、偏移三行三列后的区域。应用于 Range 对象的 Offset 属性的语法如下:expression.Offset(RowOffset, ColumnOffset)参数 expression 是必需的,该表达式返回一个 Range 对象。参数 RowOffset 是可选的,区域偏移的行数(正值、负值或 0(零) ) 。正值表示向下偏移,负值表示向上偏移,默认值为 0。参数 ColumnOffset 是可选的,区域偏移的列数(正值、负值或 0(零) ) 。正值表示向右偏移,负值表示向左偏移,默认值为 0。运行 Offset 过程,选中 A1: A3 单元格偏称三行三列后的区域,如 图 1-2 所

30、示。VBA 常用技巧代码解析 回页首13图 1-2 使用 Range 对象的 Offset 属性1-5 使用 Resize 属性使用 Range 对象的 Resize 属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示。#001 Sub Resize()#002 Sheet4.Range(“A1“).Resize(3, 3).Select#003 End Sub代码解析:Resize 过程使用 Range 对象的 Resize 属性选中 A1 单元格扩展为三行三列后的区域。Resize 属性的语法如下:expression.Resize(RowSize, ColumnSiz

31、e)参数 expression 是必需的,返回要调整大小的 Range 对象参数 RowSize 是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。参数 ColumnSize 是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。运行 Resize 过程,选中 A1 单元格扩展为三行三列后的区域,如 图 1-3 所示。图 1-3 使用 Resize 属性调整区域大小VBA 常用技巧代码解析 回页首141-6 使用 Union 方法使用 Union 方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示。#001

32、Sub UnSelect()#002 Union(Sheet5.Range(“A1:D4“), Sheet5.Range(“E5:H8“).Select#003 End Sub代码解析:UnSelect 过程选择单元格 A1:D4 和 E5:H8 所组成的区域。Union 方法返回两个或多个区域的合并区域,语法如下:expression.Union(Arg1, Arg2, .)其中参数 expression 是可选的,返回一个 Application 对象。参数 Arg1, Arg2, .是必需的,至少指定两个 Range 对象。运行 UnSelect 过程,选中单元格 A1:D4 和 E5:

33、H8 所组成的区域,如 图 1-4 所示。图 1-4 使用 Union 方法将多个非连续区域连接成一个区域1-7 使用 UsedRange 属性使用 UsedRange 属性返回指定工作表上已使用单元格组成的区域,如下面的代码所示。#001 Sub UseSelect()#002 Sheet6.UsedRange.Select#003 End Su代码解析:UseSelect 过程使用 UsedRange 属性选择工作表上已使用单元格组成的区域,包括空单元格。如工作表中已使用 A1 单元格和 D8 单元格,运行 UseSelect 过程将选择 A1 到D8 单元格区域,如 图 1-5 所示。V

34、BA 常用技巧代码解析 回页首15图 1-5 使用 UsedRange 属性选择已使用区域1-8 使用 CurrentRegion 属性使用 CurrentRegion 属性返回指定工作表上当前的区域,如下面的代码所示。#001 Sub CurrentSelect()#002 Sheet7.Range(“A5“).CurrentRegion.Select#003 End Sub代码解析:CurrentSelect 过程使用 CurrentRegion 属性选择工作表上 A5 单元格当前的区域,当前区域是一个边缘是任意空行和空列组合成的范围。运行 CurrentSelect 过程将选择 A5 到

35、 B6 单元格区域,如 图 1-6 所示。图 1-6 CurrentRegion 属性选择当前的区域技巧 2 选定单元格区域的方法2-1 使用 Select 方法在 VBA 中一般使用 Select 方法选定单元格或单元格区域,如下面的代码所示。VBA 常用技巧代码解析 回页首16#001 Sub RngSelect()#002 Sheet3.Activate#003 Sheet3.Range(“A1:B10“).Select#004 End Sub代码解析:RngSelect 过程使用 Select 方法选定 Sheet3 中的 A1:B10 单元格区域,Select 方法应用于 Range

36、 对象时语法如下:expression.Select(Replace)参数 expression 是必需的,一个有效的对象。参数 Replace 是可选的,要替换的对象。使用 Select 方法选定单元格时,单元格所在的工作表必需为活动工作表,所以在第 2行代码中先使用 Activate 方法使 Sheet3 成为活动工作表,否则 Select 方法有可能出错,显示如 图 2-1 所示的错误提示。图 2-1 Select 方法无效提示2-2 使用 Activate 方法还可以使用 Activate 方法选定单元格或单元格区域,如下面的代码所示。#001 Sub RngActivate()#00

37、2 Sheet3.Activate#003 Sheet3.Range(“A1:B10“).Activate#004 End Sub代码解析:RngActivate 过程使用 Activate 方法选定 Sheet3 中的 A1:B10 单元格区域,Activate方法应用于 Range 对象时语法如下:expression.Activate使用 Activate 方法选定单元格时,单元格所在的工作表也必需为活动工作表,否则Activate 方法有可能出错,显示如 图 2-2 所示的错误提示。VBA 常用技巧代码解析 回页首17图 2-2 Activate 方法无效提示2-3 使用 Goto 方

38、法使用 Goto 方法无需使单元格所在的工作表成为活动工作表,如下面的代码所示。#001 Sub RngGoto()#002 Application.Goto Reference:=Sheet3.Range(“A1:B10“), scroll:=True#003 End Sub代码解析:RngGoto 过程使用 Goto 方法选定 Sheet3 中的 A1:B10 单元格区域,并滚动工作表以显示该单元格。Goto 方法选定任意工作簿中的任意区域或任意 Visual Basic 过程,并且如果该工作簿未处于活动状态,就激活该工作簿,语法如下:expression.Goto(Reference,

39、Scroll)参数 expression 是必需的,返回一个 Application 对象。参数 Reference 是可选的,Variant 类型,指定目标。可以是 Range 对象、包含R1C1-样式记号的单元格引用的字符串或包含 Visual Basic 过程名的字符串。如果省略本参数,目标将是最近一次用 Goto 方法选定的区域。参数 Scroll 是可选的, Variant 类型,如果该值为 True,则滚动窗口直至目标区域的左上角单元格出现在窗口的左上角。如果该值为 False,则不滚动窗口。默认值为 False。技巧 3 获得指定行、列中的最后一个非空单元格使用 VBA 对工作表

40、进行操作时,经常需要定位到指定行或列中最后一个非空单元格,VBA 常用技巧代码解析 回页首18此时可以使用 Range 对象的 End 属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。#001 Sub LastRow()#002 Dim rng As Range#003 Set rng = Sheet1.Range(“A65536“).End(xlUp)#004 MsgBox “A 列中最后一个非空单元格是“ & rng.Address(0, 0) _#005 & “,行号“ & rng.Row & “,数值“ & rng.Value#006

41、 Set rng = Nothing#007 End Sub代码解析:LastRow 过程使用消息框显示工作表中 A 列最后非空单元格的地址、行号和数值。End 属性返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键、 或 ,语法如下:expression.End(Direction)参数 expression 是必需的,一个有效的对象。参数 Direction 是可选的,所要移动的方向,可以为 表格 3-1 所示的 XlDirection 常量之一。常量 值 描述xlDown -4121 向下xlToRight -4161 向右xlToLeft -4159 向左x

42、lUp -4162 向上表格 3-1 XlDirection 常量Range 对象的 End 属性返回的是一个 Range 对象,因此可以直接使用该对象的属性和方法。运行 LastRow 过程结果如 图 3-1 所示。VBA 常用技巧代码解析 回页首19图 3-1 获得 A 列最后一个非空单元格通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。#001 Sub LastColumn()#002 Dim rng As Range#003 Set rng = Sheet1.Range(“IV1“).End(xlToLeft)#004 MsgBox “第一行中最后一个非空单元

43、格是“ & rng.Address(0, 0) _#005 & “,列号“ & rng.Column & “,数值“ & rng.Value#006 Set rng = Nothing#007 End Sub代码解析:LastColumn 过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,如 图 3-2 所示。图 3-2 获得第一行最后一个非空单元格VBA 常用技巧代码解析 回页首20技巧 4 定位单元格在 Excel 中使用定位对话框可以选中工作表中特定的单元格区域,而在 VBA 中则使用SpecialCells 方法,如下面的代码所示。#001 Sub SpecialA

44、ddress()#002 Dim rng As Range#003 Set rng = Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas)#004 rng.Select#005 MsgBox “工作表中有公式的单元格为: “ & rng.Address#006 Set rng = Nothing#007 End Sub代码解析:SpecialAddress 过程使用 SpecialCells 方法选中工作表中有公式的单元格,并用消息框显示其地址。SpecialCells 方法返回一个 Range 对象,该对象代表与指定类型及值相匹配的所有单元格,

45、语法如下:expression.SpecialCells(Type, Value)参数 expression 是必需的,返回一个有效的对象。参数 Type 是必需的,要包含的单元格,可为 表格 4-1 所列的 XlCellType 常量之一。常量 值 描述xlCellTypeAllFormatConditions -4172 任意格式单元格xlCellTypeAllValidation -4174 含有验证条件的单元格xlCellTypeBlanks 4 空单元格xlCellTypeComments -4144 含有注释的单元格xlCellTypeConstants 2 含有常量的单元格xlC

46、ellTypeFormulas -4123 含有公式的单元格xlCellTypeLastCell 11 使用区域中最后的单元格xlCellTypeSameFormatConditions -4173 含有相同格式的单元格xlCellTypeSameValidation -4175 含有相同验证条件的单元格xlCellTypeVisible 12 所有可见单元格表格 4-1 XlCellType 常量第 3 行代码将 SpecialCells 方法的 Type 参数设置为 xlCellTypeFormulas,返回的是VBA 常用技巧代码解析 回页首21含有公式的单元格,通过修改相应的参数可以返

47、回不同的单元格。参数 Value 是可选的,如果 Type 参数为 xlCellTypeConstants 或xlCellTypeFormulas, 此参数可用于确定结果中应包含哪几类单元格。将某几个值相加可使此方法返回多种类型的单元格。如果省略将选定所有常量或公式,可为 表格 4-2 所列的 XlSpecialCellsValue 常量之一。常量 值 描述xlErrors 16 错误xlLogical 4 逻辑值xlNumbers 1 数字xlTextValues 2 文本表格 4-2 XlSpecialCellsValue 常量第 5 行代码使用消息框显示工作表中含有公式单元格的地址。Sp

48、ecialCells 方法返回的是 Range 对象,因此可以直接使用该对象的属性和方法。运行 SpecialAddress 过程结果如 图 4-1 所示。图 4-1 SpecialCells 方法技巧 5 查找单元格5-1 使用 Find 方法在 Excel 中使用查找对话框可以查找工作表中特定内容的单元格,而在 VBA 中则使用Find 方法,如下面的代码所示。#001 Sub RngFind()VBA 常用技巧代码解析 回页首22#002 Dim StrFind As String#003 Dim Rng As Range#004 StrFind = InputBox(“请输入要查找的值:“)#005 If Trim(StrFind) “ Then#007 With Sheet1.Range(“A:A“)#008 Set Rng = .Find(What:=StrFind, _#009 After:=.Cells(.Cells.Count), _#010 LookIn:=xl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报