VBA:Excel选中单元格后,相同值高亮显示 | 您所在的位置:网站首页 › excel如何高亮重复项 › VBA:Excel选中单元格后,相同值高亮显示 |
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 SubByval 的意思是 定义的形式参数“ 按值传递”,若为Byref,则是形式参数“按地址传递” 2.定义触发函数的条件 If Target.Count > 1 Then Exit Sub ... End Sub这句意思是当选中的单元格超过1个,就是退出这个函数,即Exit Sub 3.定义执行参数 Dim rng As RangeDim用于变量声明。定义rng为一个Range,Range可表示一个单元格、一行、一列或者包含一个或多个连续单元格块的选择 4.定义条件 If Target.Count = 1 And Target "" Then当选中的单元格为1个,且(AND代表条件“与”)选中单元格值不为空(“”表示不等于),执行下列语句 Cells.Interior.ColorIndex = -4142Interior是对象的内部属性,“.”类似于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 NextUsedRange属性是工作表的属性,它指的是工作表中已经使用过、编辑过的单元格区域。 所以第一句的意思是定义的rng是循环的变量,每次循环后增加1,使用过、编辑过的单元格区域遍历循环。 下面两句就是,如果循环到当前单元格,与目标单元格的内容一致,就将当前的单元格的颜色参数置为44,即橙色。 If rng = Target.Value Then rng.Interior.ColorIndex = 44然后就是,有If 就要有 End If,我自己把它理解成C++的结束花括号。 Next就代表下次循环执行,再跳到For语句处 扩展一下,Excel常用颜色代码 在开发工具中打开Visual Basic |
CopyRight 2018-2019 实验室设备网 版权所有 |