Excel 根据颜色比较两个单元格
我想根据两个细胞的颜色来比较它们 我创建了以下函数。如果单元格中的两种颜色匹配,则应写入Excel 根据颜色比较两个单元格,excel,excel-formula,excel-2010,vba,Excel,Excel Formula,Excel 2010,Vba,我想根据两个细胞的颜色来比较它们 我创建了以下函数。如果单元格中的两种颜色匹配,则应写入相同的并将单元格中的涂成绿色,否则“更改”并将其涂成红色 然而,我目前得到: 在#Value单元格中,我的公式是=ColorComparer(H4;C4) 您可以在下面找到我创建的vba函数: Function ColorComparer(rColor As Range, rRange As Range) Dim rCell As Range Dim lCol As Long Dim vResult lC
相同的
并将单元格中的涂成绿色
,否则“更改”并将其涂成红色
然而,我目前得到:
在#Value
单元格中,我的公式是=ColorComparer(H4;C4)
您可以在下面找到我创建的vba函数:
Function ColorComparer(rColor As Range, rRange As Range)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor.Interior.ColorIndex
If rCell.Interior.ColorIndex = lCol Then
vResult = "Same"
vResult.Interior.ColorIndex = RGB(0,255,0)
Else
vResult = "Change"
vResult.Interior.ColorIndex = RGB(255,0,0)
End If
ColorComparer = vResult
End Function
我真的很感谢你的回复
致以最良好的祝愿 通过一些小的更改,您的UDF将给出正确的(
Same/Change
)结果:
更改列表:
- 将
替换为rCell
参数<代码>rCell未分配任何值rRange
- 将
替换为完整的RGB值ColorIndex
Color
- 注释了
两行。vResult不指向当前单元格,即使它指向当前单元格,也有许多:vResult.Interior
Application.Volatile True
更改单元格的背景不会触发重新计算
我知道的唯一解决方案是在工作表的
SelectionChanged
和Activate
事件处理程序中触发工作表重新计算 我根本不懂你的代码。你想干什么?你有两张桌子,想要比较桌子上的颜色,还是我读错了?@BogdanBanciu-Thx获取你的答案。我的颜色函数的目标是比较图片中两个表的单元格的颜色。作为输入,我给我的函数每个表一个单元格,并按颜色进行比较。作为输出,我希望在我的第三个表中使用背景色<代码>红色<代码>或背景色<代码>绿色<代码>
Application.Volatile True