懇請教導EXCEL,如何針對儲存格數值變動,每隔30秒做算術平均數。

各位大大,EXCEL問題請教。
假設儲存格A1的數值,代表著隨時改變的溫度變化。
請問如何在下午1點到2點,每隔30秒做一次讀取數值紀錄,並存於B列儲存格,依序B1,B2,B3,B4,B5
並在c1計算個溫度之算術平均數。

感恩各位。

chaing675 wrote:
各位大大,EXCEL...(恕刪)


搜尋 excel timer,看是不是你要的~
a1 會自動變動嗎??

是的話,方法如下
(7/19 12:56 補充說明:突然想到如果a1變動時間以秒計算的話,程式更短、更簡單,晚點補上)

==============================

c1 儲存格

=IF(B1<>"",AVERAGE(B:B),"")


vba 程式碼 (全部放在 ThisWorkbook )

Private Sub Workbook_Open()

Application.OnTime TimeValue("13:00:00"), "thisworkbook.test"

End Sub

Sub test()

If hour(Time) = 14 Then End
Range("b" & WorksheetFunction.CountA(Range("b:b")) + 1) = Range("a1")
Application.OnTime Now + TimeValue("00:00:30"), "thisworkbook.test"

End Sub

==============================

如果要測試程式功能(範例)
一、TimeValue("13:00:00") 改成 TimeValue("13:10:00")
二、hour(time)=14 改成 minute(time)=11
三、range("a1") 改成 rnd(timer) *100
四、TimeValue("00:00:30") 改成 TimeValue("00:00:03")

這樣程式就會在 13:10 開始,執行1分鐘,間隔 3秒,在b1、b2、b3... 記錄亂數

p.s 每天都要開啟、關閉excel 才行
如果要連續記錄好幾天程式還要修改
剩下的就自行解決吧
重新思考一下,寫出來也沒什麼用
因為程式結構、變數,都會影響
不一定能用在您原來的程式中

還是大概說明一下好了

假設,a1,數值變動很快,以秒計算
c1 不變

在您的程式中加入判斷

if 時間 大於 13:00 小於14:00 then
if 秒數=0 或 秒數=30 then
Range("b" & WorksheetFunction.CountA(Range("b:b")) + 1) = Range("a1")
end if
end if

不過,要注意,如果變動時間小於1秒,判斷秒數的地方要注意一下

以上,大概就是這樣
謝謝S大的熱情回答,VBA對我有困難,不過我會去學一下,在
使用您提示的方法。謝謝。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!