Мне нужно понять, почему мой код не riesce изменить цвет фона ячейки (и я не хочу использовать условное форматирование)Excel VBA не Ставить ячейки цвета
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, возвращают только значения и не могут изменять свойства ячейки, такие как цвет. ** См. Мой [ответ] (http://superuser.com/questions/602216/how-do-you-write-an-excel-formula-that-will-paste-a-specific-value-in-a- differen/602928 # 602928) ** на вопрос пользователя SuperUser для рабочего места. – chuff
@chuff, это верно только для пользовательских функций (UDF), которые, как я предполагаю, здесь не так. –