比较两个单元格区域的颜色

想知道是否有人可以帮忙。

我是CS老师,作为当前Y10scheme的一部分,我们正在研究如何用二进制表示图像。 我创build了一个文件,鼓励用户根据提供的二进制代码重新创build一些像素艺术。

但是 – 现在这是我完全卡住的地方 – 我试图创build一个macros,允许用户检查他们的颜色是否符合最终结果。 我知道如何比较这两种颜色,但是让它在大范围内工作的地方就是它的下落。 我到目前为止的代码是:

Function Inc(ByRef i As Long) i = i + 1 End Function Sub CompareCellColors() Dim Rng1 As Range Set Rng1 = Range("C1:O19") Dim Rng2 As Range Set Rng2 = Range("AC1:AO19") Dim x As Long x = 0 For Each c1 In Rng1 For Each c2 In Rng2 If c1.Interior.ColorIndex = c2.Interior.ColorIndex Then Inc x End If Next c2 Next c1 If x = 247 Then Range("A3").Value = True Else Range("A3").Value = False End If End Sub 

我已经包括了我的尝试在一个解决方法(增加一个variables,如果他们匹配),但这也不起作用。

该程序编译和运行,但不准确地比较两个单元格范围(希望解释是有道理的!)。 x递增的当前结果是61009,但是只有247个单元格。

您将Rng1每个像素与Rng1中的每个像素进行Rng2因为这些循环是嵌套的。 我相信你想要的是在更多的一对一的基础上进行比较。 改为尝试

 For a = 1 to 19 'rows for b = 3 to 13 'columns If Cells(a, b).Interior.ColorIndex = Cells(a, b + 29).Interior.ColorIndex Then Inc x End If Next b Next a