求编写一个EXCEL的宏代码

问题描述:编写一个EXCEL的宏代码
当单击任一单元格时,自动执行宏完成下列任务:
若该单元格内容不为空,
则将当前工作表中的所有与之内容相同的单元格都变成绿色背景,
若同一行中出现两个及以上与之内容相同的单元格,则这些同一行的单元格背景设置为红色,
工作表中其余单元格背景都设置为颜色。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' 如果选择多于一个单元格,或者单元格为空,则直接退出

If Target.Cells.Count > 1 Or Target = "" Then Exit Sub

Cells.FormatConditions.Delete ' 清除原有条件格式

' 设置条件格式,当前工作表中的所有与选定单元格内容相同的单元格都变成绿色背景

Cells.FormatConditions.Add Type:=xlExpression, Formula1:= _

"=AND(" & Target.Address(False, False) & "=" & Target.Address & ", COUNTIF(" & Target.Row & ":" & Target.Row & "," & Target.Address & ")>1)"
Cells.FormatConditions(1).Interior.Color = vbRed

' 设置条件格式,当前工作表中的所有与选定单元格内容相同的单元格都变成绿色背景
Cells.FormatConditions.Add Type:=xlExpression, Formula1:= _

"=" & Target.Address(False, False) & "=" & Target.Address
Cells.FormatConditions(2).Interior.Color = vbGreen

End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-18
我觉得你还得补充一下,此表格以后不会再进行其它操作了吗?如添加或修改内容、复制、排序等等,假设第二行有2个单元格、第三行有一个单元格与点击的单元格内容相同,如果变色,第二行的2个变红色?第三行的那个变不?
相似回答