Оба Range.Find и Range.Replace «запомнить» настройки, которые использовались на рабочем листе пользователем.Всегда указывайте хотя бы минимальные аргументы для достижения вашей цели;например, MATCHCASE не кажется важным, но LOOKAT делает это, поскольку он должен быть xlPart.
.Replace what:="XXX", replacement:=FormulaPart2, lookat:=xlpart
.Replace what:="YYY", replacement:=FormulaPart3, lookat:=xlpart
Существуют другие методы для снижения значения .FormulaArray ниже предела в 255.
worksheets("Forecast - Budget Report").name = "f"
ThisWorkbook.Sheets("Budget Comparison").Range("F11").FormulaArray = _
"=SUM(IF(ISERROR((f!B12:M1000*(f!R12:R1000="Rental Income")*(f!B10:M10<=B8))),0,((f!B12:M1000*(f!R12:R1000="Rental Income")*(f!B10:M10<=B8)))))"
worksheets("f").name = "Forecast - Budget Report"
Изменение имени листа и использование ссылок xlA1 приводит к уменьшению формулы до 142 символов с исходных 343 символов.