这是我在这里的第一篇文章。我试图寻找答案但找不到答案。
我的问题是将公式中的范围替换为其特定值。 为了说明问题,请考虑一个单元格:
= AVERAGE(A1:A10)
我希望此单元格显示计算的平均参数:
= AVERAGE({1; 2; 3; 4; 5; 6; 7; 8; 9; 10})
此项与按F9并行,同时A1:A10范围突出显示。 我尝试用我在网上找到的东西来构建一些东西,但却无法使它工作:
Sub ChangeFormulas()
Const CONST_FUNCTION As String = "AVERAGE"
Dim cell As Range
Dim tmp As String
Dim res As Variant
For Each cell In Selection
With cell
If InStr(.Formula, CONST_FUNCTION) > 0 Then
tmp = Mid(.Formula, 10, InStr(.Formula, ")") - (InStr(.Formula, CONST_FUNCTION) + 8))
cell.Formula = Replace(cell.Formula, tmp, Application.Evaluate(tmp))
End If
End With
Next cell
End Sub
感谢您的帮助。
答案 0 :(得分:1)
根据@Brandon Barney的说法,不能想到为什么,但这就是你所需要的
"=AVERAGE({" & join(application.transpose(range("i1:i4").Value),";") & "})"
哪个会像这样返回
=AVERAGE({1;5;5;10})