0

例のためにこれを単純化します

列 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") に似たことができれば、それでうまくいきます。

これは上部の数式バーで実行できますか、それともマクロを介して実行する必要がありますか?

ありがとう

4

2 に答える 2

1

ここに解決策があります

Sub Button1_Click() Dim を文字列として

s = Range("b2").式

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

MsgBox 解像度

サブ終了

于 2009-10-12T10:03:18.120 に答える
1

Bを選択し、列をコピーし、Yを選択して「特別に貼り付け」、式を選択するだけで機能します

あなたのコメントに続いて:

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

仕事をします(ThisWorkbookに入れるマクロ)

2番目のコメントに続いて:

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 に答える