VBA:Excel选中单元格后,相同值高亮显示 您所在的位置:网站首页 excel如何高亮重复项 VBA:Excel选中单元格后,相同值高亮显示

VBA:Excel选中单元格后,相同值高亮显示

2024-07-16 17:03| 来源: 网络整理| 查看: 265

VBA:Excel选中单元格后,相同值高亮显示 场景代码释义Excel中实际执行效果

场景

在Excel数据核对中,要检查同样的数据在表格里是否重复出现,可以利用重复值筛选的方式,但是重复值筛选这个相对来说是比较静态的,如果想要动态地显示重复值,就可以借助VBA里的SelectionChange 函数,动态高亮显示重复值。

代码释义

首先是完整的函数代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub Dim rng As Range If Target.Count = 1 And Target "" Then Cells.Interior.ColorIndex = -4142 For Each rng In UsedRange If rng = Target.Value Then rng.Interior.ColorIndex = 44 End If Next End If End Sub

接着来看每一条代码的具体含义: 1.首先函数定义

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ... End Sub

Byval 的意思是 定义的形式参数“ 按值传递”,若为Byref,则是形式参数“按地址传递”

2.定义触发函数的条件

If Target.Count > 1 Then Exit Sub ... End Sub

这句意思是当选中的单元格超过1个,就是退出这个函数,即Exit Sub

3.定义执行参数

Dim rng As Range

Dim用于变量声明。定义rng为一个Range,Range可表示一个单元格、一行、一列或者包含一个或多个连续单元格块的选择

4.定义条件

If Target.Count = 1 And Target "" Then

当选中的单元格为1个,且(AND代表条件“与”)选中单元格值不为空(“”表示不等于),执行下列语句

Cells.Interior.ColorIndex = -4142

Interior是对象的内部属性,“.”类似于C++中的访问,这句的意思是赋予选中的单元格的ColoerIndex属性值-4142 那**-4142**是什么呢? 这里要做一个展开。

这张图中的右边的特殊数字是在一定场景中代表左边的属性的。比如上面代码中的“-4142”,在此处代表的是xlNone,意思是没有,xl就是excel,none就是无。 在这里插入图片描述 所以这句代码的意思就是选中这个单元格颜色属性为无。

5.编写循环体 循环部分的代码是

For Each rng In UsedRange If rng = Target.Value Then rng.Interior.ColorIndex = 3 End If Next

UsedRange属性是工作表的属性,它指的是工作表中已经使用过、编辑过的单元格区域。 所以第一句的意思是定义的rng是循环的变量,每次循环后增加1,使用过、编辑过的单元格区域遍历循环。

下面两句就是,如果循环到当前单元格,与目标单元格的内容一致,就将当前的单元格的颜色参数置为44,即橙色。

If rng = Target.Value Then rng.Interior.ColorIndex = 44

然后就是,有If 就要有 End If,我自己把它理解成C++的结束花括号。 Next就代表下次循环执行,再跳到For语句处

扩展一下,Excel常用颜色代码 在这里插入图片描述

Excel中实际执行效果

在开发工具中打开Visual Basic 在这里插入图片描述 在这里插入图片描述 在下拉框中选中worksheet 以及SelectionChange函数。 在这里插入图片描述 然后把代码贴进去,CV大法。然后最后重要的是要保存 Ctrl+S。在这里插入图片描述 然后就可以用了。执行效果就像下面这个动图: 在这里插入图片描述 以上。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有