按格式查找工作表

时间 : 15-03-12 栏目 : 案例专题 作者 : 战战如疯 评论 : 1 点击 : 6,769 次

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat4/651.html,VBA交流群273624828。

在工作中我们可能会需要查找符合某些特定格式的单元格,这个功能手动实现的话就是用查找替换对话框中的“格式”选项,这次我们来看下怎么用VBA代码来实现按格式查找。

要按格式查找,首先要设置要查找的格式,例如字体为黑体则是Application.FindFormat.Font.Name="黑体"。

设置好格式之后就用Find命令进行查找,Find的用法和前面讲过的Find用法一致,只是将SearchFormat属性设置为true即可。

在之前讲Find用法时在查找下一个内容时我们用的是FindNext,但是在查找格式时FindNext方法并不适用(虽然录制出来的宏中用的仍然是FindNext),因此我们只能记录当前找到的单元格的位置,然后下次查找时从当前位置向后查找,当找到的单元格和我们第一次找到的单元格相同时就说明已经找完了全表。

Sub SearchFormat()
Dim FirstAdd As String, rng As Range, rngs As Range
Application.FindFormat.Clear
With Application.FindFormat   '这里是设置查找的格式
.Font.Name = "黑体"
'.Font.Bold = False
'.Interior.Color = vbRed
End With
With Range("A:A")    '查找的区域
Set rng = .Find(What:="", LookIn:=xlFormulas, LookAt:=xlPart, SearchFormat:=True)
If rng Is Nothing Then  '找不到内容则退出
Exit Sub
End If
Set rngs = rng
FirstAdd = rng.Address   '记录下第一次找到的位置
Do    '循环查找
Set rngs = Union(rngs, rng)
Set rng = .Find(What:="", After:=rng, SearchFormat:=True)
Loop Until FirstAdd = rng.Address
rngs.Select
End With
Set rng = Nothing
Set rngs = Nothing
End Sub

本节示例文件下载地址: http://pan.baidu.com/s/1qAiUa



2017年五月
« 七    
1234567
891011121314
15161718192021
22232425262728
293031  

联系博主

咨询,程序开发,友链交换请联系博主 QQ:449217002
VBA QQ群:273624828

注意!复制代码请用Ctrl+C!

相关文章



无觅相关文章插件,快速提升流量

1