- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
在 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 当前工作表中没有合并单元格!, , 提示 - http://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, , 合并单元格地址: - http://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 当前工作表中没有合并单元格!, , 提示 - http://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, , 合并单元格地址: - http://wwww.excelba.com
End If
End Sub
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>