2016-04-26 139 views
0

我有一個相當複雜的工作簿,但使用分佈平均值的計算並不那麼直接。在工作簿的末尾是特定單元格中的結果值。每當工作簿重新計算出該值稍有變化時。每當我重新計算一個新單元格時,是否有辦法保存所有這些值?理想情況下,我希望這樣做100多次,以便能夠根據可能的值繪製圖表並獲得平均值。Excel - 將計算結果作爲新行保留在單獨的工作表上

宏能夠做這份工作嗎?如果是的話......我從哪裏開始?

謝謝!

+0

VBA將是實現它的理想方式。將您的工作表設置爲手動重新計算。將你的宏綁定到一個按鈕。該宏會導致工作簿計算一次,並將您的單個值放入給定範圍內的下一個空白單元格中。該範圍可以預先配置爲圖形數據系列的一部分,或者可以將該下一個值放入數據系列還包括VBA腳本。只有一種可能的方法。什麼導致重新計算?我只是想知道,如果它是RND函數之一,在每個表格重新生成一個新的數字。如果可以移動的話。 –

回答

1

您必須訂閱WorkbookCalculate事件。爲此,請按ALT + F11打開VBE。在左側,您應該看到Project Explorer樹形視圖(如果沒有,請按CTRL + R)。右鍵點擊ThisWorkbook,然後選擇View Code。這打開了一個文本編輯器窗口。在這個窗口的頂部,有兩個下拉框。在左下拉框中,選擇Workbook。在右側的下拉列表中選擇SheetCalculate

現在,工作簿將在每次計算時執行一個操作。下面,我有一個示例腳本。在Sheet2中有一個公式,我們需要歷史記錄的單元格A1。看看您是否可以根據自己的需求調整代碼,或者在需要時提供更多信息。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object) 
    Dim sData As Worksheet 
    Dim nNewRow As Long 

    Set sData = Worksheets("Sheet2") 
    nNewRow = sData.Cells(Rows.Count, 1).End(xlUp).Row + 1 

    sData.Cells(nNewRow, 1).Value = sData.Range("A1").Value 

End Sub 
相關問題