0

例如,我会简化这个

我在 B 列中有一个公式,即 Ax + 2,

例如在 B1 中,它是 A1 + 2 在 B2 中,它是 A2 + 2

我想在 Y 列中创建一个公式,该公式始终反映 B 列中的任何公式,但用 X 替换公式中的 A。

例如在 Y1 中,它是 X1 + 2 在 Y2 中,它是 X2 + 2

无论 B 列中的公式发生什么变化,我都希望 Y 中的公式反映这些变化。

实际上,如果我可以做类似于 =B1.formula.replace("A","X") 的事情,那么就可以完成这项工作。

这可以在顶部的公式栏中完成还是需要通过宏来完成?

谢谢

4

2 回答 2

1

选择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
于 2009-10-12T09:37:50.343 回答
1

这是解决方案

Sub Button1_Click() Dim s As String

s = Range("b2").Formula

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

消息框资源

结束子

于 2009-10-12T10:03:18.120 回答