gpt4 book ai didi

excel - 如何使用 VBA 在 Excel 中的单元格中设置 "Evaluate Formula"- 例如显示工作

转载 作者:行者123 更新时间:2023-12-04 20:23:22 24 4
gpt4 key购买 nike

我需要能够在 excel 中“展示我的工作”。因此,当我为客户打印工作表时,可以在没有原始电子表格的情况下检查所有工作。我有点试图复制excel的“评估公式”功能,但在单元格内。我可以手动完成,但这真的很耗时,因为我有很多公式。
所以如果我在牢房里有这个

=(C2*C3)+C4
我希望能够使用 VBA 魔法把它变成这个
="("&TEXT(C2,"0.00")&" x "&TEXT(C3,"0.00")&" ) + "&TEXT(C4,"0.00")
所以结果看起来像这样
(50.22 x 2.11 ) + 3.22
我可以在 VBA 中转换数学符号(括号、乘法等)。但我不知道如何识别单元格引用,以便我可以进行文本转换部分(我不能离开没有文本功能的公式 - 小数位太长)。任何帮助将不胜感激。

最佳答案

这将重新格式化选定的单元格并将结果放在右侧的单元格 1 列中。

Sub ReformatForumla()
Dim prec As Range
Dim rng As Range
Dim frm As String
Dim cellRef As String
Dim loopRng As Range
Dim i As Long
Dim stored() As Variant
Dim sorted As Variant

For Each loopRng In Selection
frm = Replace(loopRng.Formula, "$", "")
frm = "=""" & frm & """"
Set prec = loopRng.Precedents
i = 1
ReDim stored(prec.Cells.Count, 2)
For Each rng In prec
stored(i, 1) = rng.Address
stored(i, 2) = Len(rng.Address)
i = i + 1
Next rng
sorted = Application.WorksheetFunction.Sort(stored, 2, -1)
For i = 1 To prec.Cells.Count
cellRef = Replace(sorted(i, 2), "$", "")
frm = Replace(frm, cellRef, """ & TEXT(" & Application.ConvertFormula(cellRef, xlA1, xlA1, xlAbsolute) & ",""0.00"") & """)
Next i
frm = Replace(frm, "+", " + ")
frm = Replace(frm, "-", " - ")
frm = Replace(frm, "*", " x ")
frm = Replace(frm, "/", " / ")
loopRng.Offset(0, 1).Value = frm
Next loopRng
End Sub

关于excel - 如何使用 VBA 在 Excel 中的单元格中设置 "Evaluate Formula"- 例如显示工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66721126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com