Question

I'll simplify this for example sake

I have a formula in column B which is Ax + 2,

e.g. in B1, it's A1 + 2 in B2, it's A2 + 2

I want to make a formula in column Y which mirrors whatever formula is in column B at all times but replaces the A in the formula with a X.

e.g. in Y1, it's X1 + 2 in Y2, it's X2 + 2

No matter what happens to the formula in column B, I want the formula in Y to reflect those changes.

Effectively, if I could do something akin to =B1.formula.replace("A","X") then that would do the job.

Can this be done in the formula bar at the top or will it need to be done via a macro?

Thanks

Was it helpful?

Solution

Here is the solution

Sub Button1_Click() Dim s As String

s = Range("b2").Formula

Dim res As String res = Replace(s, "A", "x")

MsgBox res

End Sub

OTHER TIPS

Select B, copy the column, select Y and "paste special" choosing formula only should do the job

Following your comment:

Private Sub Workbook_Open()
   Range("Y:Y").FormulaR1C1 = Range("B:B").FormulaR1C1
End Sub 

will do the job (macro to put in ThisWorkbook)

Following your second comment:

Sub Workbook_Open()
    On Error GoTo errLbl
    xlCalc = Application.Calculation
    Application.Calculation = xlCalculationManual ' stop calculation '
    Application.ScreenUpdating = False ' disable screen update '

    For Each c In Range("B:B")
        Range("Y" & c.Row).Formula = Replace(c.Formula, "A", "D")
        If c.Formula = vbNullString Then Exit For ' stop if "B" has no formula '
    Next

errLbl:       
    Application.ScreenUpdating = True ' enable screen update '
    Application.Calculation = xlCalc ' enable calculation back to where it was '
End Sub
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top