Pensei em compartilhar a solução que acabei fazendo, já que ela faz o trabalho. Não foi possível fazer uma função definida pelo usuário que faz isso, não parece ser possível, então fui com uma macro básica.
Sub Formulas()
Dim rng As Range, cell As Range, y As Integer, o As Integer
y = Range("B1").Value
o = (y - 3) * 2
Set rng = Range(Cells(3, 4), Cells(3, y))
On Error GoTo ErrHandler
For Each cell In rng
cell.Activate
cell.Formula = ActiveCell.Offset(0, o).Value
Next cell
Exit Sub
ErrHandler:
Msg = "Invalid formula for this Indicator, please re-check in sheet IndDef"
MsgBox Msg, , "Error!", Err.HelpFile, Err.HelpContext
End Sub
Este foi escrito para ser usado com um botão, se você quiser uma macro de execução automática em busca deste site para dicas sobre o uso de intersecção.
A parte importante para o problema é a questão:
cell.Activate
cell.Formula = ActiveCell.Offset(0, o).Value
Basta definir a fórmula da célula como o valor daquela com a string
Range1.Formula = Range2.Value
No meu caso, eu queria que fosse executado através de um monte de células, daí a necessidade de ativar o equivalente a Range1 e usar ActiveCell.Offset para definir o equivalente a Range2
Funciona com qualquer string, mas as funções precisam ser escritas em inglês. Espero que isso ajude.