想知道是否有人可以提供帮助。
我是CS老师,作为我目前Y10计划的一部分,我们正在研究图像是如何用二进制表示的。我创建了一个文件,鼓励用户根据提供的二进制代码重新创建一些像素艺术。
然而 - 现在这就是我完全陷入困境的地方 - 我正在尝试创建一个允许用户检查其颜色是否与最终结果相匹配的宏。我理解如何比较这两种颜色,但让它在我所拥有的大范围内工作就是它倒下的地方。 我到目前为止的代码是:
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
我已经尝试了一种解决方法(如果变量匹配则递增变量),但这也不起作用。
程序编译并运行,但没有准确地比较两个单元格范围(希望这种解释是有意义的!)。 x增量的当前结果是61009,但是选择只有247个单元格。
答案 0 :(得分:1)
您正在将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