Andrea trova più facile mettere insieme formule che utilizzano riferimenti di cella R1C1. Sa come farlo quando aggiunge manualmente formule a un foglio di lavoro, ma si chiede come può utilizzare i riferimenti R1C1 nelle formule che mette insieme e inserisce nelle celle usando una macro. Si chiede se c’è qualcosa a cui deve prestare attenzione quando lo fa.
Quando normalmente inserisci una formula in una cella, useresti una di queste sintassi nella tua macro:
Cells(3,1).Formula = "=A1 + A2" Range("A3").Formula = "=A1 + A2"
Entrambe funzioneranno bene: inseriscono una semplice formula nella cella A3. Se, tuttavia, desideri utilizzare i riferimenti R1C1 nella formula che inserisci nella cella A3, devi solo sostituire alla proprietà Formula la proprietà FormulaR1C1:
Cells(3,1).FormulaR1C1 = "=R1C1 + R2C1" Range("A3").FormulaR1C1 = "=R1C1 + R2C1"
È interessante notare che se si inseriscono le formule R1C1 in una cella e il foglio di lavoro non ha la visualizzazione R1C1 attivata, Excel convertirà la formula per riflettere la visualizzazione attiva. In altre parole, cambia automaticamente “= R1C1 + R2C1” in “=$A$1 + $A$2”. È vero anche il contrario: inserisci la formula “=A1+A2” in una cella e viene visualizzata come “=R[-2]C+R[-1]C” se hai la visualizzazione R1C1 attivata.
Dovresti anche notare che poiché sia Formula che FormulaR1C1 sono proprietà, puoi leggerle e vedere la formula nella cella nel formato desiderato. Ad esempio, supponiamo che la cella A3 contenga la formula “=A1+A2”. Se poi esegui la seguente macro, vedrai la formula visualizzata nei formati desiderati:
Sub TestFormula()
Dim sMsg As String
sMsg = "Formato normale: " & Cells(3,1).Formula & vbCrLf
sMsg = sMsg & "Formato R1C1: " & Range("A3").FormulaR1C1
MsgBox sMsg
End Sub