我使用一个公式来显示另一个单元格中的单元格公式。
我想在这个公式中显示每个引用的值,而不是引用。
例:=$R$16+R19*(15元新台币-16元雷亚尔) 希望它是 =3+2*(4-2)
函数,我现在使用它来显示公式。
Function GetFormula(Cell As Range) As String
GetFormula = Cell.Formula
End Function发布于 2013-12-13 02:10:12
下面是一个非常基本的示例,它可以处理以下情况
=B1+C1-D1/E1
=$B$1+C1*($B$1-$D$1)
=B1+C1-(D1/E1)
=B1+C1-(D1/E1)
=$B$1*C1*($B$1/$D$1)假设:
样本工作表

码
Sub Sample()
Dim i As Long
For i = 1 To 5
Debug.Print ConvertToValues(Range("A" & i))
Next i
End Sub
Function ConvertToValues(rng As Range)
Dim sTmp As String, sOpr As String, sOrig As String
Dim s As String, v As String
Dim MyAr
Dim i As Long
sOpr = "+,/,-,*,&,(,),{,},[,]"
MyAr = Split(sOpr, ",")
sTmp = Replace(rng.Formula, "$", "")
sOrig = sTmp
For i = LBound(MyAr) To UBound(MyAr)
sTmp = Replace(sTmp, MyAr(i), "SIDROUT")
Next i
MyAr = Split(sTmp, "SIDROUT")
For i = LBound(MyAr) To UBound(MyAr)
s = MyAr(i)
If Len(Trim(s)) <> 0 Then
v = Range(s).Value
sOrig = Replace(sOrig, s, v)
End If
Next i
If sOrig <> "" Then _
ConvertToValues = "=" & sOrig
End Function输出

Note:
如果上述代码在特定情况下失败,请告诉我,我将更新代码。
https://stackoverflow.com/questions/20556406
复制相似问题