officeba > 单独文章


用VBA按Excel2003单元格格式查找

在Excel2003版,查找的功能多了一个按单元格的格式来查找符合条件的单元格,指定格式的方法是,单击查找对话框中的“选项”,展开后单击“格式”,在“查找格式”对话框中进行设定或选择包含格式的单元格。比如我们要搜索合并的单元格,就可以在对齐选卡中把合并的单元格中选上。

而在VBA中,我们怎么来完成呢?通过录制宏,可以发现我们并不能录到任何代码,而在Find对应的VBA帮助中,我们也只能找到一条相关的信息:

SearchFormat      Variant 类型,可选。搜索的格式。

而没有其它相关的信息与相关的实例!那下面我们就以上面查找合并单元格的例子,看怎么用VBA来选择当前工作表中的所有合并单元格。

Sub FindFormatDemo()
Dim SRan As Range
Dim TRan As Range
Dim URan As Range
Dim TStr As String
Set SRan = ActiveSheet.UsedRange
'设置要查找的单元格格式类型的搜索条件为合并单元格类型。
Application.FindFormat.MergeCells = True
Set TRan = SRan.Find(What:="", After:=SRan.Item(1), SearchDirection:=xlNext, SearchFormat:=True)
If TRan Is Nothing Then
    MsgBox "当前工作表中没有合并单元格!", , "提示 - https://wwww.excelba.com"
Else
    Set URan = TRan
    TStr = TRan.Address
    Do
        Set TRan = SRan.Find(What:="", After:=TRan, SearchDirection:=xlPrevious, SearchFormat:=True)
        If Not TRan Is Nothing And TRan.Address <> TStr Then
            Set URan = Union(URan, TRan)
        Else
            Exit Do
        End If
    Loop
    URan.Select
    MsgBox Selection.Address, , "合并单元格地址: - https://wwww.excelba.com"
End If
End Sub


要注意的是,如果你要直接返回合并单元格,而不是选择后再返回选择的地址,上面的代码要作一下修改!

Sub FindFormatDemo()
Dim SRan As Range
Dim TRan As Range
Dim URan As Range
Dim TStr As String
Set SRan = ActiveSheet.UsedRange
'设置要查找的单元格格式类型的搜索条件为合并单元格类型。
Application.FindFormat.MergeCells = True
Set TRan = SRan.Find(What:="", After:=SRan.Item(1), SearchDirection:=xlNext, SearchFormat:=True)
If TRan Is Nothing Then
    MsgBox "当前工作表中没有合并单元格!", , "提示 - https://wwww.excelba.com"
Else
    Set URan = TRan.MergeArea
    TStr = TRan.Address
    Do
        Set TRan = SRan.Find(What:="", After:=TRan, SearchDirection:=xlPrevious, SearchFormat:=True)
        If Not TRan Is Nothing And TRan.Address <> TStr Then
            Set URan = Union(URan, TRan.MergeArea)
        Else
            Exit Do
        End If
    Loop
    URan.Select
    MsgBox URan.Address, , "合并单元格地址: - https://wwww.excelba.com"
End If
End Sub


本文来自:Excel吧


声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2008-07-26 17:42:25,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容