Come usare i riferimenti R1C1 in una macro

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

 

Tags: , , , ,

Ti è stato utile?