1
我有两个工作在两列的VBA代码:列A和列B.基本上,它在列B上循环,并尝试在列A中查找每列B值。 ,列A中的某些值具有蓝色的单元(内部)颜色。VBA宏没有正确检测内部或字体颜色
所以可以有3分的结果:
- 如果在列A中没有找到一个列B值,则该列B值具有其小区(室内)颜色设置为红色。
- 如果在列A中找到列B值,并且列A中的值具有蓝色单元格(内部)颜色,则该列B值将其单元格(内部)颜色设置为黄色。
- 如果在列A中找到列B值,并且列A中的值不具有蓝色单元格(内部)颜色,则该列B值将其单元格(内部)颜色设置为绿色。
点1可以工作,但是对于分离点2和3的IF检查不起作用。所有这些情况都会自动转到第3点。
有人可以确定问题吗?
代码:
Sub Looper()
Dim i As Integer
Dim Sel As String
Dim MoveDown As String
Dim sourceVal As String
Dim Program As String
Dim i2 As Integer
Dim MoveDown2 As String
Dim Sel2 As String
Dim destVal As String
Dim found As Boolean
i = 2
MoveDown = "YES"
MoveDown2 = "YES"
i2 = 2
Do Until MoveDown = "DONE"
Sel = "B" + Replace(Str(i), " ", "")
sourceVal = Range(Sel).Value
If Range(Sel).Value = "" Then
MoveDown = "DONE"
Else
MoveDown2 = "YES"
i2 = 2
found = False
Do Until MoveDown2 = "DONE"
Sel2 = "A" + Replace(Str(i2), " ", "")
destVal = Range(Sel2).Value
If Range(Sel2).Value = "" Then
MoveDown2 = "DONE"
Else
If destVal = sourceVal Then
If Range(Sel2).Interior.Color = vbBlue Then
Range(Sel).Interior.Color = vbYellow
Else
Range(Sel).Interior.Color = vbGreen
End If
found = True
End If
End If
i2 = i2 + 1
Loop
If found = False Then
Range(Sel).Interior.Color = vbRed
End If
End If
i = i + 1
Loop
End Sub
检查该被细胞人工蓝色或者它是条件格式化的结果? – JosieP