【发布时间】:2013-06-04 17:57:41
【问题描述】:
我需要了解为什么我的代码不能修改单元格的背景颜色(而且我不想使用条件格式)
Function myCheck(ToVerify As Range, RightValue As Range) As Boolean
Dim rng1 As Range
Dim rng2 As Range
For Each rng1 In ToVerify.Cells
For Each rng2 In RightValue.Cells
If (rng1.Value <> rng2.Value) Then
rng1.Interior.Color = RGB(255, 0, 0)
'rng1.Cells.Interior.Color = RGB(0, 255, 0)
'rng1.Cells.Interior.ColorIndex = 10
'rng1.Interior.ColorIndex = 10
End If
Next rng2
Next rng1
SignIfError = True
End Function
我已编写此代码来确定一行中的哪些单元格 (ToVerify) 与特定单元格 (RightValue) 的值不同。我需要让这些单元格可见,然后我想改变它们的背景颜色。问题是 Excel 不会更改此单元格的背景颜色。我确定单元格值满足 If 语句的条件。 IF 语句中被注释的行是我的其他尝试,但这些都不起作用。
我哪里做错了?
【问题讨论】:
-
RightValue是否包含多个单元格? -
Excel函数,包括VBA中定义的函数,只能返回值,不能修改颜色等单元格属性。 请参阅我的 answer 到超级用户的问题以获取解决方法。
-
@chuff,这仅适用于用户定义函数 (UDF),我猜这里的情况并非如此。
-
RightValue 包含单个单元格
-
如果他将他的代码更改为 Sub 那么没问题,@Doug。
标签: excel vba colors background cell