这是我在这里的第一篇文章。我试图寻找答案,但找不到一个答案。
我的问题是将公式中的范围替换为其特定值。为了说明问题,请考虑一个单元格:
=平均(A1:A10)
我希望这个单元格显示计算的平均参数:
=平均({1; 2; 3; 3; 4; 5; 6; 7; 8; 9; 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
谢谢您的帮助。
不能认为为什么按照@brandon Barney的规定,但这是您需要的
"=AVERAGE({" & join(application.transpose(range("i1:i4").Value),";") & "})"
将像这样返回的
=AVERAGE({1;5;5;10})