2011-10-05 132 views
0

我一直在尋找像瘋了一樣,我敢肯定它比我想象的更簡單所以請賜教!如何獲得細胞的公式VALUE

我設置上的一些細胞在公式中這樣的循環:

ActiveSheet.Range("AM" & i).Formula = "=ROUND(Y" & i & "/(M" & i & "+U" & i & "/12))" 

而且我想這個公式的結果複製到其他細胞。我試過這個:

ActiveSheet.Range("Y" & i).Value = ActiveSheet.Range("AM" & i).Value 

但它不工作。我總是想知道如何得到這個公式的結果(值),而不是複製整個公式。

任何想法或答覆?非常感謝。

+0

它看起來像它應該工作,讓你確信它放置後實際計算它式。另外,這兩個公式將是循環的,所以這可能是問題。 –

+0

@Tom,你實際上不需要循環,將公式放在一系列單元格上。它可以在一行中完成。 – Reafidy

+0

同意上面的評論。您選擇的複製/粘貼答案確實是一種解決方法 – brettdj

回答

0

您可以將結果複製爲值。假設我有單元格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 
+0

好吧!感謝它的工作! – TomShreds

+1

(1)如果你曾經在VBA中使用過Copy,那麼你應該添加一個'Application.CutCopyMode = False'去除A3的複製選擇。 (2)上面的例子可以用一行'[a4] .Value = Application.WorksheetFunction.Max([a1],[a2])''避免複製 – brettdj

+1

@brettdj - 謝謝 - 好評。我同意你的觀點(2),但我不清楚爲什麼它不適用於OP,因此我提供了複製和粘貼作爲替代方案。 –