Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3209|回复: 4

[VBA] 027-按指定格式查找-疑难千寻千解丛书(VBA)

[复制链接]
发表于 2011-2-13 11:27 | 显示全部楼层 |阅读模式
ET疑难千寻千解丛书之EXCEL2010编程与实践
罗刚君 章兰新 黄朝阳 编著

疑难27
如何按指定的格式查找
如何查找某个格式的所有单元格?例如图所示的成绩表按不同班级和成绩范围设定了不同的格式。如何查找到字体为“Arial Black”、加粗且黄色背景的所有单元格?
è解决方案
指定FindFormat,并通过Range.Find的“SearchFormat”参数来查找指定格式的区域。
í操作方法
步骤1
确定活动工作表为“成绩表”,按【Alt+F11】组合键打开VBE窗口。
步骤2
选择菜单“插入”→“模块”,并输入以下代码:

  1. Sub 按格式查找()
  2.   Dim FindStr As String, Rng As Range, mRng As Range
  3.   Application.FindFormat.Clear         '清除原有格式
  4.   With Application.FindFormat         '设置查找格式
  5.     .Font.Name = "Arial Black"         '指定字体
  6.     .Font.Bold = True                           '加粗
  7.     .Interior.Color = 65535            '黄色背景
  8.   End With
  9.   With Range("C:C") '在C列查找
  10.     Set Rng = .Find(What:="", LookIn:=xlFormulas, LookAt:=xlPart,Search
  11.     Format:=True) '按格式查找
  12.     If Rng Is Nothing Then MsgBox "没有找到此类单元格": Exit Sub '如果找不到则退出
  13.     Set mRng = Rng '将找到的对象赋予另一个变量
  14.     FindStr = Rng.Address '取第一个找到的单元格的地址
  15.      Do
  16.         Set mRng = Union(mRng, Rng)
  17.         '合并变量mrng和找到的单元格(如果有多个符合条件,则逐一合并)
  18.         Set Rng = .Find(What:="", After:=Rng, SearchFormat:=True) '查找下一个
  19.      '直到找到的单元格的地址等于第一个单元格地址时停止
  20.      Loop While FindStr <> Rng.Address  
  21.       mRng.Select '选择所有符合条件的单元格
  22.     End With
  23. End Sub
复制代码
步骤3
光标置于代码中任意位置,并按【F5】键执行,程序会按指定的三种格式查找所有单元格,并选择符合条件的单元格。本例中符合条件的单元格为C4C9C10,如图所示。

=============================
上摘自《EXCEL2010编程与实践》

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-2-13 11:34 | 显示全部楼层
回复

使用道具 举报

发表于 2011-2-13 11:36 | 显示全部楼层
回复

使用道具 举报

发表于 2011-2-13 11:36 | 显示全部楼层
跟着小妖老师来学习吧
不会有错的。
回复

使用道具 举报

发表于 2011-4-9 21:12 | 显示全部楼层
{:011:}{:011:}{:011:}{:011:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-1 21:51 , Processed in 0.416715 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表