Использование формулы из другого столбца в Excel - PullRequest
0 голосов
/ 12 октября 2009

Я упросту это, например, ради

У меня есть формула в столбце B, которая равна Ax + 2,

например. в B1 это A1 + 2 в B2 это A2 + 2

Я хочу создать формулу в столбце Y, которая будет постоянно отображать формулу в столбце B, но заменяет A в формуле на X.

например. в Y1 это X1 + 2 в Y2 это X2 + 2

Независимо от того, что происходит с формулой в столбце B, я хочу, чтобы формула в Y отражала эти изменения.

Фактически, если бы я мог сделать что-то похожее на = B1.formula.replace ("A", "X"), то это бы сработало.

Можно ли это сделать в строке формул вверху или это нужно сделать с помощью макроса?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 октября 2009

Вот решение

Sub Button1_Click () Dim s As String

s = Диапазон ("b2"). Формула

Dim Res As String res = Заменить (s, "A", "x")

MsgBox res

End Sub

1 голос
/ 12 октября 2009

Выберите B, скопируйте столбец, выберите Y и «вставьте специальное», выбрав формулу, которая должна выполнять работу

После вашего комментария:

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

выполнит эту работу (макрос для добавления в ThisWorkbook)

После вашего второго комментария:

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
...