使用Excel中另一列的公式

时间:2009-10-12 09:33:52

标签: excel excel-formula excel-2003 excel-vba vba

我会简化这个例子

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

e.g。在B1中,它是A1 + 2      在B2中,它是A2 + 2

我想在Y列中制作一个公式,它始终反映B列中的任何公式,但用X替换公式中的A.

e.g。在Y1中,它是X1 + 2      在Y2中,它是X2 + 2

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

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

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

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

这是解决方案

Sub Button1_Click() Dim s As String

s =范围(“b2”)。公式

Dim res As String res =替换(s,“A”,“x”)

MsgBox res

End Sub