优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel 如何按单元格颜色和字体查找,教你一个很特别的技巧

nanyue 2024-10-01 13:14:38 技术文章 5 ℃

Excel表格中查询内容,通常以单元格值的形式来进行查询,如果想以单元格的颜色来到查找,如何实现呢?

看完本节内容你就明白了。

Excel中有查询对话框,这里不做介绍,很明显,看到的内容并没有多么难学。

接下来查询对话框背后的代码,进行一下解释学习。

首先要认识一个属性:FindFormat

这个属性是Application对象下的一个属性,其功能就是设置查询的格式。

也就是说,想要查找什么颜色的单元格或什么字体字号的单元格,进行定义。

如下图所示,做了一个示例,查找蓝色背景的单元格,字号为12,字体为" 宋体"

既然是查询,那就要用到一个查询方法:Find()

这个方法有很多参数,前面的文章有介绍,可以找一下看具体用法。下面的示例中也有相关内容。

其中有一个参数是否和FindFormat属性有关。

searchformat:=True

searchformat参数的意义:是否按查找格式进行,设置为True,很显然要按照设置的格式查找,如果为False那是否。

上述就是重点,下面具体看代码:

Option Explicit
Private Sub CommandButton1_Click()
Dim FindStyleObj As Object '定义查找条件对象
Set FindStyleObj = Application.FindFormat
    With FindStyleObj '定义查找的条件
        .Interior.Color = QBColor(9) '查找背景颜色
        .Font.Size = 12 '查找字号为12
        .Font.Name = "宋体"
    End With
Dim cell As Range, cellAddress As String, r As Range
Set cell = ActiveSheet.UsedRange.Find(what:="*", _
searchorder:=xlByRows, searchformat:=True) '查找并返回单元格
If cell Is Nothing Then MsgBox "什么都没有找到!": Exit Sub
cellAddress = cell.Address '保存第一个找到单元格地址
Set r = cell '设置第一个单元格
Do While Not cell Is Nothing
    Set r = Application.Union(r, cell) '组合找到的确单元格
Set cell = ActiveSheet.UsedRange.Find(what:="*", _
after:=cell, searchorder:=xlByColumns, searchformat:=True) '查找并返回单元格
If cell.Address = cellAddress Then Exit Do '如果返回到第一个查到的单元格就退出查找
DoEvents
Loop
r.Select
MsgBox "找到了如下单元格: " & r.Address
    Dim sStyle As String
    sStyle = "搜索条件:" & VBA.vbCrLf & _
    "背景颜色值为:" & _
     FindStyleObj.Interior.Color & _
    VBA.vbCrLf & "字号大小为:" & FindStyleObj.Font.Size
MsgBox sStyle '输出查找条件
FindStyleObj.Clear '清除查找条件
Set FindStyleObj = Nothing
End Sub

代码就不逐行介绍了,都要有注释,如果不懂,那说明不适合本阶段的学习,收藏后再慢慢学习应用。

别看代码有点多,实际上重要的内容就几行,如find()函数和Application.FindFormat。

Application.FindFormat可以返回一个CellFormat对象,此对象可设置查询单元格的属性。虽然在代码中没有明确体现,但是有一个行就是这个方法实现的。

Set FindStyleObj = Application.FindFormat

FindStyleObj就是一个CellFormat对象。

单元格查找是一个很实用的功能,如果按照不同颜色或字体进行查询,那么可以实现一些特别的确功能。

前提是要首先对表格进行了一些单元格设置之后,不然什么也不找到就毫无意义了。

欢迎关注、收藏

---END---

最近发表
标签列表