excel 有無類似 timer 的功能

2009-02-14 7:40 am
請問 excel 中有沒有類似計時器的功能
目的是要用來更新資料
例如我有一個儲存格是用來顯示時間
但是一般這個時間會固定不會改變
我想藉由類似 timer 的功能來更新這個儲存格的時間
( 請問 vba 做得到嗎 )

回答 (5)

2009-02-24 12:02 am
✔ 最佳答案
你可以在VBA的視窗的左側新增一個 "模組"(通常一開始預設會是 Module1)
然後你在該 Module1 裡面新增兩個東西 :
1. Public CellAddress As String
2.
Sub ChangeTimerCell()
Application.OnTime DateAdd("s", 1, DateTime.Now), "ChangeTimerCell"
Range(CellAddress).Value = Format(DateTime.Now, "yyyy/MM/dd HH:mm:ss")
End Sub

新增完之後, 到 Microsoft Excel 物件 選擇你要更新的那一個表(例如:Sheet1)
增加一個事件 叫做 Worksheet_Activate() (通常這個用選的就可以選得到)
新增兩行:
1. CellAddress = "A1" 'A1是你要更新的儲存格
2. Call ChangeTimerCell ' 呼叫更新時間程序

這樣你只要每次選到 Sheet1, A1 那一格就會自動更新時間.

希望這樣有解決你的問題 :)
參考: Myself & Excel
2009-02-15 8:09 am
三法參考 :

http://tw.myblog.yahoo.com/jw!_DIL5waFHwVKfL8odMZ4urti/article?mid=850&prev=871&l=f&fid=16

2009-02-22 22:00:38 補充:
版大需求的 "Timer" ,
最小單位會比 "秒" 小嗎 ?
2009-02-14 10:49 pm
夏日用Application.OnTime比較有效益, 對其他functions同步運作影響最少

Calvin Lee
2009-02-14 7:25 pm
VBA是有一個Timer函數
做了一個百份一秒的計時器(並非時鐘), 沒有應用價值

Sub timex()
t = Timer
[a1] = Format(Timer - t, "0.00")
For i = 1 To 10000
If Format(Timer - t, "0.00") <> [a1] Then
[a1] = Format(Timer - t, "0.00")
End If
Next
End Sub
2009-02-14 8:35 am
EXCEL沒有timer元件,但可以用
Sub times()
[a1] = Now
Application.OnTime Now + TimeValue("00:00:01"), "times"
End Sub

2009-02-14 18:28:54 補充:
謝各位建議,新田兄這ID其實還滿眼熟的,之前在論壇常看到也是EXCEL的高手,現較忙較少上了。
此題我的想法是計時器,應該指的是VB.NET下的TIMER元件,設定多久tick一次,而excel的TIMER函數一般常拿來運用於算程式執行時間。
t=timer
.....
msgbox timer-t
至於如何運用樓主應該看的懂自己能解決才是的。


收錄日期: 2021-05-01 16:27:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090213000015KK11275

檢視 Wayback Machine 備份