Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何获取单元格';s公式值_Excel_Vba - Fatal编程技术网

Excel 如何获取单元格';s公式值

Excel 如何获取单元格';s公式值,excel,vba,Excel,Vba,我一直在疯狂地寻找,我相信这比我想象的要简单得多,所以请启发我 我在循环中的某些单元格上设置了一个公式,如下所示: ActiveSheet.Range("AM" & i).Formula = "=ROUND(Y" & i & "/(M" & i & "+U" & i & "/12))" 我想把这个公式的结果复制到另一个单元格。我试过这个: ActiveSheet.Range("Y" & i).Value = ActiveSheet

我一直在疯狂地寻找,我相信这比我想象的要简单得多,所以请启发我

我在循环中的某些单元格上设置了一个公式,如下所示:

ActiveSheet.Range("AM" & i).Formula = "=ROUND(Y" & i & "/(M" & i & "+U" & i & "/12))"
我想把这个公式的结果复制到另一个单元格。我试过这个:

ActiveSheet.Range("Y" & i).Value = ActiveSheet.Range("AM" & i).Value
但它不起作用。我一直想知道如何得到这个公式的结果(值),而不是复制整个公式


有什么想法或答案吗?非常感谢。

您可以将结果复制为值。假设我有单元格A1和A2,我想得到A3中的
MAX
值,然后将结果复制到A4:

    A
1   10
2   20
3   20 <- as formula '=MAX(A1:A2)'
4   20 <- as value not formula

Sub AddMax()
    Range("A3").Formula = "=MAX(A1:A2)"
End Sub

Sub CopyResult()
    Range("A3").Copy
    Range("A4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
A
1   10
2   20

3.20它似乎应该是有效的,你确定它在放置公式后实际计算了它吗。另外,这两个公式是循环的,所以这可能是问题所在。@Tom,你实际上不需要循环,将公式放在一系列单元格上。这可以在一行中完成。同意上面的两个评论。您选择的复制/粘贴答案实际上是一种解决方法(1)如果您确实在VBA中使用过复制,则应添加
应用程序。CutCopyMode=False
以删除A3周围的复制选择。(2) 可以使用一行
[a4].Value=Application.WorksheetFunction.Max([a1],[a2])
来完成上面的示例copy@brettdj-谢谢-评论不错。我同意你的观点(2),但我不清楚为什么它不适用于OP,所以我提供了复制和粘贴作为替代方案。干杯。我的评论并不是有意批评的。它们看起来比我重读时所想的更尖刻。谢谢你在我的计划中把它看作是建设性的manner@brettdj-没问题。我欢迎这些建议,在这个网站上,我总是对自己不知道的事情感到谦卑,所以我尽量保持开放的心态。