これを行うためのコードがあります。しかし、私はこのコードをカスタマイズすることは私の状況のためです。 現在コード:参照の代わりにセル式に値を表示する方法
Sub Finalone()
Dim lastrow As Long, r1 As Long
Dim temp As String, arTemp
Dim temp2 As String
Dim temp3 As String
temp3 = ""
' Get the last row in the worksheet
lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
For r1 = 1 To lastrow
' If A & B aren't blank, make the formula of cell C equal to A + B.
If ActiveSheet.Range("$C$" & r1).Value <> "" And Mid(ActiveSheet.Range("$C$" & r1).Formula, 1, 1) = "=" Then
If Asc(Mid(ActiveSheet.Range("$C$" & r1).Formula, 2, 1)) >= 65 And Asc(Mid(ActiveSheet.Range("$C$" & r1).Formula, 2, 1)) <= 90 Then
' Get the formula for the current C cell
temp = Replace(ActiveSheet.Range("$C$" & r1).Formula, "=", "")
' Create an array by splitting the formula on the + sign
arTemp = Split(temp, "+")
temp2 = ActiveSheet.Range(arTemp(0)).Value
For i = 1 To UBound(arTemp)
temp3 = ActiveSheet.Range(arTemp(i)).Value
temp2 = temp2 & "+" & temp3
Next i
ActiveSheet.Range("$C$" & r1).Value = "=" & temp2
End If
End If
Next
End Sub
上記のコードは、場合にのみ、AとB列の仕事である値を有し、C列は、以下の式を有し、式は+ Bです。 私のsiutionのようなものです - 値の列は、varryかもしれません。数式の列はCではなく、私の状況の式の使用はたとえば(R12-Q12)/ 2です。 上記の数式を値に変換する列をユーザーが選択しなければならないように、ユーザーからの入力を得るにはマクロが必要です。
あなたは 'ActiveCell.FormulaR1C1 =" =(RC [-1] -RC [-2])/ 2 "'を試すことができます。 – Davesexcel
あなたの返事をありがとう。しかし、実際には、セルの値ではなく、セルの値をセルの式で表示する必要があります。上記の数式は、セル参照を作成します。 – sabarigiri
オフセットを使用します。 'ActiveCell =(ActiveCell.Offset(、-1) - ActiveCell.Offset(、-2))/ 2' – Davesexcel