前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一段“老”程序

一段“老”程序

作者头像
fanjy
发布2023-10-18 12:53:01
1940
发布2023-10-18 12:53:01
举报
文章被收录于专栏:完美Excel

下面是以前经常使用的一段程序,也就是查找并返回多个与所给条件相匹配的单元格。

代码语言:javascript
复制
Sub Select_All_Found()
 Dim strFind As String
 Dim rng As Range
 Dim rngFound As Range
 
 strFind = InputBox("请输入要查找的字符串:")
 If strFind = "" Then Exit Sub
 For Each rng In ActiveSheet.UsedRange
   If rng.Value Like "*" & strFind & "*" Then
     If rngFound Is Nothing Then Set rngFound = rng
     Set rngFound = Union(rngFound, rng)
   End If
 Next rng
 If rngFound Is Nothing Then Exit Sub
 rngFound.Select
 MsgBox "找到 " & rngFound.Count & " 个与 " & strFind & " 匹配的单元格."
End Sub

我们都知道,Find方法只会返回相匹配的第一个单元格,而这段程序通过使用Union方法将所有找到的单元格联起来,实现了返回多个相匹配的单元格。

稍微修改一下,想要选取工作表中所有背景色为红色的单元格,代码如下:

代码语言:javascript
复制
Sub Select_All_Red_Cells()
 Dim rng As Range
 Dim rngRed As Range
 Dim i As Integer
 
 For Each rng In ActiveSheet.UsedRange
   If rng.Interior.Color = vbRed Then
     If rngRed Is Nothing Then Set rngRed = rng
     Set rngRed = Union(rngRed, rng)
     i = i + 1
   End If
 Next rng
 
 If i > 0 Then
   rngRed.Select
   Set rngRed = Nothing
 Else
   MsgBox "没有满足条件的单元格.", vbOKOnly, "都不匹配"
 End If
End Sub

程序虽然“老”了点,但原理很有用,呵呵~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档