Excel:根据搜索栏突出显示单元格,但在用户单击时删除突出显示

eni9jsuy  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(134)

我有一个包含大量数据的Excel工作表。我希望在顶部实现一个“搜索框”,用户可以在其中键入一个术语/字符串,单击一个按钮,Excel将突出显示包含该字符串的任何单元格。但是,我还希望一旦用户鼠标单击文档中的任何位置,这些单元格将“取消突出显示”。
我似乎找不到这方面的VBA代码...主要是最后一部分。
谢谢
我曾尝试使用条件格式解决该问题,但无法使其正常工作,因此现在我希望使用VBA来解决该问题。但是,我对鼠标单击属性并不熟悉。

h79rfbju

h79rfbju1#

条件格式+ VBA清除
“使用公式确定要格式化的单元格”中的以下公式将突出显示“包含”搜索短语的任何单元格:
=NOT(ISERROR(查找($C$2,B5,1)))

您可以看到我们使用了'FIND([$C$2中的搜索栏值],[在动态B5中,因此它分别应用于搜索范围中的每个单元格],[从1开始])。
如果它找到了值,它将不会出错,如果它没有找到,它将出错。
如果我们删除单元格内容,所有内容都将被格式化。要解决此问题,我们可以修改公式以包含一个if语句来检查搜索栏是否为空,或者简单地添加第二个条件格式:
=空白($C$2)

如果要在单击离开时使格式清晰,则需要访问VBA工作表模块:

接下来,您需要粘贴以下代码:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim sBar As Range
    Set sBar = Range("C2")
    If Selection.Address <> sBar.Offset(1, 0).Address Then sBar.Value = ""

End Sub

成品:

第一次

相关问题