目录

示例:

实现代码:

单元格对象的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 按颜色查找单元格相关推荐

  1. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  2. Excel如何快速定位相同字体颜色的单元格?

    今天要和大家分享的是,Excel如何快速定位相同字体颜色的单元格?比如下图中的各种颜色字体,我们只想一步定位到所有的红色字体-- (方方格子插件) ​ 1.先看动图演示吧 2.选中数据区域内任意一个红 ...

  3. Excel使用VBA合并单列、多列单元格

    Excel使用VBA合并单列.多列单元格 多列合并相同内容单元格 合并相同单元格的功能如下同,让相同内容的单元格合并为一个. 具体代码如下: Sub 相同内容合并单元格() ' ' '' Dim i, ...

  4. Excel 2010 VBA 入门 036 替换所有的错误值

    目录 Range对象的Find方法 参数省略表示法 查找格式 示例: 实现代码 使用Is Nothing判断对象是否初始化 IsError函数 SpeciaICells方法 Find方法的一般形式 C ...

  5. Excel 2010 VBA 入门 037 获取最后一行数据的行数

    目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...

  6. Excel 2010 VBA 入门 062 跨表数据查询

    目录 示例 实现代码 跨表操作单元格 连续查找功能 示例 如图所示,该工作簿中建立"数据表"和"数据查询"表分别用于存储客户信息以及客户信息的查询.现希望在数据 ...

  7. Excel 2010 VBA 入门 063 跨表数据录入

    目录 示例 实现代码 ListObject对象 ListObject对象的表示方法 1.序号表示法 2.名称表示法 ListColumn对象 向ListObject中添加新数据 使用VBA添加List ...

  8. Excel 2010 VBA 入门 028 向单元格输入公式

    目录 示例: 利用Formula属性给单元格输入公式 Formula属性和Value属性的联系与区别 利用FormulaR1C1属性给单元格输入公式 R1C1引用样式的规则 (1)"绝对引用 ...

  9. Excel 2010 VBA 入门 039 按条件隐藏数据行

    目录 示例: 实现代码1 行和列的隐藏 实例代码2 单元格对象的AutoFilter(自动筛选)方法 实现代码3 单元格对象的AdvancedFilter(高级筛选)方法 ​​​​​​​ 示例: 在E ...

最新文章

  1. 6招识破翻新iPhone
  2. java成员属性生命周期,Spring注解 - 生命周期、属性赋值、自动装配
  3. 编译libmysqlclient.a静态库
  4. hystrix thread pool Metrics
  5. 利用matlab将二进制小数转换为十进制小数
  6. 【SPSS】SPSS第五周作业
  7. java lambda使用_在Java 8 Lambda上使用Apache Commons Functor功能接口
  8. 美团数据仓库-数据脱敏
  9. 12名高校教师被降级!打破职称终身制,山东在行动!
  10. oracle 中sql的分类,Oracle数据库语言分类
  11. 安装软件提示计算机管理员权限,安装需要管理员权限怎么办 设置安装软件需要管理员权限的方法教程...
  12. matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.01.19 更新]
  13. 仿今日头条项目——首页(文章搜索)
  14. 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
  15. 本地文件共享到云服务器,本地和云服务器文件共享
  16. Tiktokshop小店实操-如何快速上传商品,一键采集,自动刊登,批量上货,多店铺铺货
  17. HTML中图片和文字的对齐方式
  18. 【去后厂村开游戏厅吧】基于pp-tinypose的体感贪吃蛇游戏
  19. Anaconda的卸载及安装(图文详解)
  20. Mac Elasticsearch 7.9.3 安装指南

热门文章

  1. 谷歌眼镜强势回归 我们从中能学到什么? | 分析
  2. charles抓包证书失效
  3. SSD训练的优化器们
  4. 视频输出在显卡和主板间切换
  5. 华为鸿蒙息屏显示,华为息屏显示国徽图片设置方法步骤分享
  6. table 列宽计算方式
  7. ec20 获取LTE信号强度
  8. Linux进程概念(精讲)
  9. 鸿蒙系统千元机,华为最强的千元机?7nm芯片、全面屏、5G、能升级鸿蒙系统 - 区块网...
  10. 一篇文章帮你搞懂什么是“最小可行性产品”(MVP),以及如何实现!