网站首页 > 技术文章 正文
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---
猜你喜欢
- 2024-10-01 Excel VBA 事件过程实现数据变化结果也会随之自动更新
- 2024-10-01 每天长时间盯着电脑,这三招帮你缓解眼睛疲劳
- 2024-10-01 Excel-VBA:13、Excel事件程序(vba事件怎么触发)
- 2024-10-01 excel vba常用语句干货分享,错过了就不会再有了(关注!)
- 2024-10-01 设计模式之观察者模式,事件机制的底层原理全面解析(建议收藏)
- 2024-10-01 相同单元格自动变色提醒(相同单元格自动变色提醒怎么取消)
- 2024-10-01 Excel实用技巧:根据条件,锁定某个单元格
- 2024-10-01 苹果电脑这些超实用的隐藏功能,不会用就等于白花钱了!
- 2024-10-01 办公小技巧:制作自动显示子菜单的下拉菜单
- 2024-10-01 常用的、带解释的 VBA 短句(vba常用语句详解)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)