
假設我有一個工作簿,在其某些單元格中使用Rand()
,並最終在A1
.
如何建立包含該儲存格中出現的 100 或 500 個值的記錄(刷新後)?
我猜想可以進行一些 VBA 查找並記錄結果,但我想知道是否有一些內建方法可以做到這一點(也許使用場景或目標尋求或類似的東西)。
答案1
首先包含一個名為的新選項卡歷史 保存結果。然後將下列事件巨集插入原始工作表的工作表程式碼區域:
Private Sub Worksheet_Calculate()
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
Dim hys As Worksheet, N As Long
Set hys = Sheets("hystory")
N = hys.Cells(Rows.Count, "A").End(xlUp).Row + 1
N = wf.Min(N, Rows.Count)
Application.EnableEvents = False
hys.Cells(N, "A").Value = [A1]
Application.EnableEvents = True
End Sub
因為它是工作表程式碼,所以非常容易安裝並自動使用:
- 右鍵單擊 Excel 視窗底部附近的選項卡名稱
- 選擇查看代碼 - 這將打開一個 VBE 窗口
- 將內容貼進去並關閉 VBE 窗口
如果您有任何疑慮,請先在試用工作表上嘗試。
如果儲存工作簿,巨集將隨之儲存。如果您使用的是 2003 年以後的 Excel 版本,則必須將檔案儲存為.xlsm而不是.xlsx
若要刪除巨集:
- 如上所示調出 VBE 窗口
- 清除程式碼
- 關閉VBE視窗
要了解有關巨集的更多信息,請參閱:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有關事件巨集(工作表程式碼)的更多信息,請參閱:
http://www.mvps.org/dmcritchie/excel/event.htm
必須啟用巨集才能使其工作!
答案2
執行此操作的常規方法是複製隨機值,然後貼上值。如果需要,您可以將其錄製為巨集。