Попробуйте это (не проверено)
Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _
"=IF(J$4=""FactTrancheValue"",INDEX(INDIRECT(J$4)," & _
"ROW()-4,MATCH(J$5,INDIRECT(""'""&J$4&""'!""&""A1:JJ1""),0))," & _
"INDEX(INDIRECT(J$4),MATCH(INDIRECT(J$3&ROW())," & _
"INDIRECT(""'""&J$4&""'!""&""A1:A999999""),0)," & _
"MATCH(J$5,INDIRECT(""'""&J$4&""'!""&""A1:JJ1""),0)))"
(отредактировано в соответствии с вашим обновлением)
При установке этой формулы в одну ячейку я не получаю ошибок от VBA (хотя сама формула возвращает#REF!)
Если это не сработает, убедитесь, что ваша ссылка Range()
верна.