Excel 100 VBA устанавливает условное форматирование, но результаты неверны

Мне нужно изменить большое количество условного форматирования, поэтому я пишу подпрограмму VBA. Следующий код устанавливает условный формат, но результаты неверны. Я имею в виду, что иду на лист и вижу, что условное форматирование правильное. Результаты неверны. Таким образом, формула.8*($L$9/10) = 7,92 и должна давать числа>= 8 не окрашенные в красный цвет, а все окрашенные в красный цвет.

Sub SetFirst2(ByVal TheRow As Byte, target As Range)
  ' if it is less than .8*total/10
 target.FormatConditions.Add Type:=xlCellValue, _
  Operator:=xlLess, Formula1:="="".8*($L$" & TheRow & "/10)"""
  target.FormatConditions(1).Font.ColorIndex = 3 'Red
End Sub

И вот как я это называю:

Call SetFirst2(9, ShTheSheet.Range("B9:K9"))

Столбец L содержит эту формулу:

=SUM(B9:K9)

1 ответ

Решение

У вас слишком много двойных кавычек в определении формулы. Это должно работать (успешно протестировано в Excel 2010):

Formula1:="=.8*($L$" & TheRow & "/10)"
Другие вопросы по тегам