Excel 2010 VBA 入门 038 按颜色查找单元格
目录
示例:
实现代码:
单元格对象的Clear方法
动态表示数据区域
单元格对象的Copy方法
示例代码2.0
单元格对象的选择性粘贴(PasteSpecial)方法
参数Paste表示选择性粘贴的内容,可以为下表中的任何一个。
参数Operation为粘贴的附加操作,可以为下表中的任何一个。
参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。
参数Transpose表示是否转置,若为True,则表示转置。
示例:
如图所示,该表为某公司某月销售人员的销售数据。在进行数据核对时,发现某些有问题的数据并将填充色改为灰色。现在需要将这些数据一次性筛选出来并复制到F:H列,该如何利用VBA实现?
销售地区 | 销售人员 | 销售金额 |
广州 | 程建华 | 135000 |
深圳 | 李国敏 | 67200 |
深圳 | 袁志刚 | 79500 |
深圳 | 周汉林 | 225000 |
广州 | 骈永富 | 15400 |
广州 | 孙玉梅 | 2500 |
上海 | 陈亚菁 | 37400 |
上海 | 康小芸 | 12000 |
上海 | 刘晨 | 22500 |
广州 | 齐光 | 73500 |
广州 | 于健惠 | 235000 |
山东 | 王文群 | 136500 |
山东 | 曾国安 | 21000 |
广州 | 刘志峰 | 16000 |
广州 | 刘玉录 | 78000 |
广州 | 俞卫广 | 36000 |
广州 | 杨建军 | 170000 |
深圳 | 曲波 | 38000 |
深圳 | 林革壮 | 73500 |
深圳 | 李卫卿 | 45000 |
广州 | 申玲 | 132000 |
上海 | 孙正发 | 63000 |
上海 | 毛传阳 | 106500 |
广州 | 张元端 | 147000 |
广州 | 朱凌波 | 265000 |
山东 | 张宏 | 34500 |
山东 | 郦锡文 | 300000 |
广州 | 张占斌 | 32500 |
广州 | 曹阳 | 205000 |
广州 | 周书敬 | 22400 |
广州 | 姚胜 | 215000 |
深圳 | 郭建 | 19500 |
深圳 | 高波 | 114000 |
深圳 | 卢卫 | 120000 |
实现代码:
Option ExplicitSub 按颜色查找()Dim Rng As RangeDim RowN As Long'清除结果区域Range("F2:H" & Rows.Count).ClearRowN = 1For Each Rng In Range(Range("C1"), Cells(Rows.Count, "C").End(xlUp))'判断是否有填充色If Rng.Interior.Pattern <> xlNone Then'复制至结果区域Intersect(Rng.EntireRow, Columns("A:C")).Copy Cells(RowN, "F")'结果区域行+1RowN = RowN + 1End IfNextEnd Sub
单元格对象的Clear方法
本例使用了单元格对象的Clear方法对单元格进行清除操作,该清除操作包括清除所有的数据以及格式。除了Clear方法外,Excel VBA还提供了其他清除单元格的方法,见表。
表 单元格对象(Range)的Clear方法
方 法 |
说 明 |
Clear |
清除单元格所有的内容、格式、批注、超链接、分级显示 |
ClearComments |
清除单元格批注 |
ClearContents |
清除单元格内容(公式,值) |
ClearFormats |
清除单元格格式(包括条件格式、自定义格式) |
ClearHyperlinks |
清除单元格超链接(无法消除Hyperlink函数所生成的链接) |
ClearNotes; |
清除单元格批注和语音批注 |
ClearOutline |
清除单元格分级显示 |
动态表示数据区域
本例使用了Range对象的起点与终点表示方式来表示C列的数据区域,起点为C2单元格,而终点则使用End属性获取该列最后一个有数据的单元格。
单元格对象的Copy方法
单元格对象的Copy方法是将单元格(包括内容、格式、批注等)复制到指定的区域,其语法为:
Rng.Copy [Destination]
其中,Rng为单元格或单元格区域,参数Destination为目标单元格区域对象。Destination是可以省略的,当省略时,则表示将Rng复制到剪贴板,然后需要用Paste方法进行粘贴。因而本例复制单元格的部分也可以使用以下语句完成:
Intersect(Rng.EntireRow,Columns("A: C")).Copy
Cells (RowN,"F").Select
ActiveSheet.Paste
示例代码2.0
Sub 按颜色查找1()Dim Rng As RangeDim RowN As Long'清除结果区域Range("F2:H" & Rows.Count).ClearRowN = 1For Each Rng In Range(Range("C1"), Cells(Rows.Count, "C").End(xlUp))'判断是否有填充色If Rng.Interior.Pattern <> xlNone Then'复制至结果区域Intersect(Rng.EntireRow, Columns("A:C")).CopyCells(RowN, "F").SelectActiveSheet.Paste'结果区域行+1RowN = RowN + 1End IfNextEnd Sub
单元格对象的选择性粘贴(PasteSpecial)方法
当不需要复制单元格的所有属性时,如只需要复制单元格格式时,可以使用选择性粘贴PasteSpecial方法进行。在使用PasteSpecial方法时,首先需要对源单元格使用Copy方法将单元格复制到剪贴板,然后对目标单元格使用PasteSpecial进行选择性粘贴。PasteSpecial的语法为:
Rng.PasteSpecial [Paste],[Operation],[SkipBlanks],[Transpose]
其中,Rng表示目标单元格区域。
参数Paste表示选择性粘贴的内容,可以为下表中的任何一个。
表 PasteSpecial方法的Paste参数
常 量 |
值 |
说 明 |
xlPasteAll |
-4104 |
粘贴全部内容 |
xlPasteAllExceptBorders |
7 |
粘贴除边框外的全部内容 |
xlPasteAllMergingConditionalFormats |
14 |
将粘贴所有的内容,并且将合并条件格式 |
xlPasteAllUsingSourceTheme |
13 |
使用源主题粘贴全部内容 |
xlPasteColmnnWidths |
8 |
粘贴复制的列宽 |
xlPasteComments |
-4144 |
粘贴批注 |
xlPasteFormats |
-4122 |
粘贴复制的源格式 |
xlPasteFormulas |
-4123 |
粘贴公式 |
xlPasteFomulasAndNumberFormats |
11 |
粘贴公式和数字格式 |
xlPasteValidation |
6 |
粘贴有效性 |
xlPasteValues |
-4163 |
粘贴值 |
xlPasteValuesAndNumberFormats |
12 |
粘贴值和数字格式 |
参数Operation为粘贴的附加操作,可以为下表中的任何一个。
表 PasteSpecial方法的Operation参数
常 量 |
值 |
说 明 |
xlPasteSpecialOperationAdd |
2 |
复制的数据与目标单元格中的值相加 |
xlPasteSpecialOpeiationDivide |
5 |
复制的数据除以目标单元格中的值 |
xlPasteSpecialOperationMultiply . |
4 |
复制的数据乘以目标单元格中的值 |
xlPasteSpecialOperationNone |
-4142 |
粘贴操作中不执行任何计算 |
xlPasteSpecialOperationSubtract |
3 |
复制的数据减去目标单元格中的值 |
参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。
参数Transpose表示是否转置,若为True,则表示转置。
PasteSpecial方法实质就是工作表的选择性粘贴的基本操作,其参数设置与操作选项的对应关系如图所示。
Excel 2010 VBA 入门 038 按颜色查找单元格相关推荐
- Excel 2010 VBA 入门 034 创建图片批注
目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...
- Excel如何快速定位相同字体颜色的单元格?
今天要和大家分享的是,Excel如何快速定位相同字体颜色的单元格?比如下图中的各种颜色字体,我们只想一步定位到所有的红色字体-- (方方格子插件) 1.先看动图演示吧 2.选中数据区域内任意一个红 ...
- Excel使用VBA合并单列、多列单元格
Excel使用VBA合并单列.多列单元格 多列合并相同内容单元格 合并相同单元格的功能如下同,让相同内容的单元格合并为一个. 具体代码如下: Sub 相同内容合并单元格() ' ' '' Dim i, ...
- Excel 2010 VBA 入门 036 替换所有的错误值
目录 Range对象的Find方法 参数省略表示法 查找格式 示例: 实现代码 使用Is Nothing判断对象是否初始化 IsError函数 SpeciaICells方法 Find方法的一般形式 C ...
- Excel 2010 VBA 入门 037 获取最后一行数据的行数
目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...
- Excel 2010 VBA 入门 062 跨表数据查询
目录 示例 实现代码 跨表操作单元格 连续查找功能 示例 如图所示,该工作簿中建立"数据表"和"数据查询"表分别用于存储客户信息以及客户信息的查询.现希望在数据 ...
- Excel 2010 VBA 入门 063 跨表数据录入
目录 示例 实现代码 ListObject对象 ListObject对象的表示方法 1.序号表示法 2.名称表示法 ListColumn对象 向ListObject中添加新数据 使用VBA添加List ...
- Excel 2010 VBA 入门 028 向单元格输入公式
目录 示例: 利用Formula属性给单元格输入公式 Formula属性和Value属性的联系与区别 利用FormulaR1C1属性给单元格输入公式 R1C1引用样式的规则 (1)"绝对引用 ...
- Excel 2010 VBA 入门 039 按条件隐藏数据行
目录 示例: 实现代码1 行和列的隐藏 实例代码2 单元格对象的AutoFilter(自动筛选)方法 实现代码3 单元格对象的AdvancedFilter(高级筛选)方法 示例: 在E ...
最新文章
- 6招识破翻新iPhone
- java成员属性生命周期,Spring注解 - 生命周期、属性赋值、自动装配
- 编译libmysqlclient.a静态库
- hystrix thread pool Metrics
- 利用matlab将二进制小数转换为十进制小数
- 【SPSS】SPSS第五周作业
- java lambda使用_在Java 8 Lambda上使用Apache Commons Functor功能接口
- 美团数据仓库-数据脱敏
- 12名高校教师被降级!打破职称终身制,山东在行动!
- oracle 中sql的分类,Oracle数据库语言分类
- 安装软件提示计算机管理员权限,安装需要管理员权限怎么办 设置安装软件需要管理员权限的方法教程...
- matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.01.19 更新]
- 仿今日头条项目——首页(文章搜索)
- 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
- 本地文件共享到云服务器,本地和云服务器文件共享
- Tiktokshop小店实操-如何快速上传商品,一键采集,自动刊登,批量上货,多店铺铺货
- HTML中图片和文字的对齐方式
- 【去后厂村开游戏厅吧】基于pp-tinypose的体感贪吃蛇游戏
- Anaconda的卸载及安装(图文详解)
- Mac Elasticsearch 7.9.3 安装指南