显示单元格的公式,但是显示值而不是引用

 莪啝伱在一敧 发布于 2023-02-11 10:21

我正在使用一个公式来显示另一个细胞中的细胞配方.

我想在此公式中显示每个引用的值,而不是引用.

例如:

= $ R $ 16 + R19*($ T $ 15- $ R $ 16)

想要它

= 3 + 2*(4-2)

我现在用的功能是显示公式

Function GetFormula(Cell As Range) As String
   GetFormula = Cell.Formula
End Function

Siddharth Ro.. 5

这是一个非常基本的例子,它可以处理像这样的情况

=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)

假设:

    假设上述公式在单元格A1到A5中

    所有细胞都在同一张纸上

    没有像SUM,Vlookup等工作表函数

    没有完成错误处理.假设你会照顾它

示例工作表

在此输入图像描述

代码:

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

产量

在此输入图像描述

注意:

如果上述代码在特定情况下失败,请告诉我,我将更新代码.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有