Я работаю над разделом довольно большого макроса VBA, который предназначен для применения условного форматирования, когда другая ячейка равна 1, так что ячейка может быть выделена как «выбранная».
При генерации условного форматированияФормула, которая делает это, в Excel, похоже, меняет константу по своему усмотрению - все значения, из которых она читает, должны быть в строке 99, и это в коде, но вместо этого Excel изменяет формулу на =IF(B101=1,1,0)
для первой,затем =IF(B105=1,1,0)
для следующего и т. д.
Это объединенные ячейки, так что я бы предположил, что excel пытается автоматически завершить мой код, смещая формулу на количество строк вниз, на которых я нахожусь.Очевидно, что это нежелательно, кто-нибудь знает, как я могу остановить Excel сделать это?Соответствующий раздел кода ниже:
For Each x In Range(crange)
condrow = 99
Range(Cells(coffset + 3, y + 1), Cells(coffset + 2 + currentdiv, y + 1)).FormatConditions.Delete
Cells(coffset + 3, y + 1).Value = x
selectform = "=IF(" & ConvertToLetter(Cells(coffset + 3, y + 1).Column) & CStr(condrow) & "=1,1,0)"
Range(Cells(coffset + 3, y + 1), Cells(coffset + 2 + currentdiv, y + 1)).Merge
Range(Cells(coffset + 3, y + 1), Cells(coffset + 2 + currentdiv, y + 1)).FormatConditions.Delete
Range(Cells(coffset + 3, y + 1), Cells(coffset + 2 + currentdiv, y + 1)).FormatConditions.Add Type:=xlExpression, Formula1:= _
"clashform"