你好!楼主想要的VBA程序代码,其程序代码如下:
Sub ColorInset()
Dim i1, i2, i3
On Error Resume Next '忽略运行过程中可能出现的错误
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表
For i1 = 2 To 1000 '从第2行到1000行
If mysheet1.Cells(i1, 1) <> "" Then '如果A列单元格不是空白,则
For i2 = 2 To 6 '从第2列到第6列
If mysheet1.Cells(i1, 1) = mysheet1.Cells(i1, i2) Then '如果两个单元格的内容相同
mysheet1.Cells(i1, 1).Interior.Color = RGB(255, 255, 0) '填充黄颜色
mysheet1.Cells(i1, i2).Interior.Color = RGB(255, 255, 0)
End If
Next
End If
Next
End Sub
程序运行之后的结果如下:
追问你好!我把代码复制进去了,按运行键可以运行,但不按时,单元格不能自动标识颜色,是什么原因,是我这边那里出的问题。
请你帮忙写一个。
方便做一个看看,方法不怕多,多学习一下。
追答选中你要设置格式的区域(A2:F5),条件格式-突出显示单元格规则-其他规则-使用公式确定
输入=$A2=A2,格式设置为你要的格式
首先,感谢。我试了是可以,但有个不好的现象,当单元格为空时,全是底纹颜色,如果能做到不输入数据时是原始颜色就好了,然后条件满足后再上颜色,我想问一下=$A2=A2 是怎么解释。
追答前面那个$A2表示固定与A列匹配,行号动态变化;后面的A2表示要设置格式的区域里面的参数,相对位置,即A2与$A2比,A3与$A3比。。。B2与$A2比,C2与$A2比。。。
要去除空值的话改为=and($A2=A2,A2"")
A列还是存在有底色,其它没有了。同时能把A列底色除掉吗
追答=and($A2=A2,A2"",countif($A2:$F2,$A2)>1)
追问你好!你试一下,是没有底色了,符合条件时,底色标注的是上行的,而不是本行。
追答你要根据你的数据区域修改对应的行列坐标值哦
你的数据区域和提问中的一样吗
我刚才又试一下,选择区域A2:F5是可以的。
因为我想把区域范围放大点,刚才我直接选择A拉到F区域时,当条件满足时颜色标示在上一行。我以为选择区域不影响,为什么这样选区域会不行的。
里面的每一个参数都是根据要设置格式的区域来选择的,区域变变了参数要跟着变,但是相对位置没有变
$A2、A2是取得区域第一行第一列的值,
$A2:$F2是区域的第一行(整行)
好的,感谢。=and($A2=A2,A2"",countif($A2:$F2,$A2)>1)能说明一下吗
追答$A2=A2,每一个值与第一列、本行比较
A2每一个值与空值比较
countif()每一行第一个值,在本行是否有相同值