VBA程式設計之放假倒計時器

2021-07-12 04:10:49 字數 1337 閱讀 4645

用excel做乙個倒計時器,可以實時看到離某個時刻還有幾秒,比如說你惦記著的某人的生日,或者你盼望的放假。
private

sub workbook_open()

docells(2, 3) = now '填寫系統當前時間

dt1 = now '系統當前時間送給變數

dt2 = cells(3, 3) '目標時間送給變數

dd = datediff("d", dt1, dt2) - 1

'求出時間差(天數)

if dd < 0

then dd = 0

'天數為負數時,調整為零

s0 = datediff("s", dt1, dt2) '求出時間差(秒數)

if s0 <= 0

then

'秒數小於或等於零

cells(4, 3) = "時間到!"

exit

sub'退出子程式

endif

r = s0 - dd * 24 * 3600

'求出不足一天的剩餘秒數

hh = r \ 3600

'將剩餘秒數轉換為時、分、秒

mm = (r mod

3600) \ 60

ss = (r mod

3600) mod

60 cells(4, 3) = dd & "天 " & hh & "小時" & mm & "分" & ss & "秒"

t = int(timer) '取系統計時器值(秒)

dowhile int(timer) = t '系統計時器秒數未改變,則迴圈等待

doevents '轉讓控制權給作業系統

loop

loop

endsub

沒有什麼特別難懂的句法,特別說說轉讓控制權的用法。doevents 把控制權交給作業系統,以響應視窗重畫、最大化、最小化等要求,避免出現應用程式不響應作業系統請求而被作業系統誤以為宕機了。

舉個例子:在視窗中放乙個textbox,然後寫程式,迴圈從1到10萬,然後迴圈體裡面就是把這個數寫到textbox裡面,如果沒有doevents,程式執行的時候就是宕機一樣,然後直到最後視窗顯示10萬,中間數字什麼也看不見。

如果在每次寫了textbox以後,都來一下doevents,視窗就會重畫,執行的時候就能看見textbox裡面的數乙個乙個的長上去。

倒計時器 CountDownLatch

countdownlatch是乙個非常實用的多執行緒控制工具類。常用的就下面幾個方法 countdownlatch int count 例項化乙個倒計數器,count指定計數個數 countdown 計數減一 await 等待,當計數減到0時,所有執行緒並行執行countdownlatch在我工作的...

多執行緒之倒計時器CountDownLatch及原理

這個工具通常用來控制線程等待,它可以讓某乙個執行緒等待直到倒計時結束再開始執行。countdownlatch是 共享模式 的。構造方法 countdownlatch int count count就是計數的次數 主要方法 void await 讓當前執行緒等待,直到倒計時結束 long getcou...

發言倒計時器 單面會議計時器 會議發言倒計時器

單面會議倒計時器 說明 1.單面 控制按鈕700元 2.單面 控制按鈕 搖控800元 3.單面 控制按鈕 搖控 三腳支架1000元 以上 都是不含稅不含運費的 會議計時器功能 可以任意設定發言時長 高99分59秒 設定會議計提醒時間 以分鐘為單位,1 99分鐘 提醒音為滴滴滴的聲音,發言結束音為叮咚...