我会简化这个例子
我在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”)的事情那么那就可以完成这项工作。
这可以在顶部的公式栏中完成,还是需要通过宏来完成?
由于
答案 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