返回列表 上一主題 發帖

DOEVENTS 指令很重要

DOEVENTS 指令很重要

天下為公

回復 15# ui123


    謝謝 你的 謝謝
就 感心ㄟ
天下為公

TOP

謝謝大大的解說

TOP

回復 13# handsometrowa


    Excel 的 VBA 很霸道。
你可以想像,電腦的 CPU 就像是 餐廳的 waiter,
只有 一個 water, 他要 同時伺候 十幾桌的 客人,
CPU 就在不同的桌子 中間,轉啊 轉的。
但是,VBA 就很霸道的 遇到 迴圈的時候,就綁住 CPU
不讓他 轉台,抽空去 伺候 別的 桌子,
導致 ,連 自己也無法 完成事情。

譬如說,我的 迴圈,是要 監測 是否有 DDE的報價資料近來。
CPU 如果不讓出去 ,持行 DDE 報價的動作,
我的 迴圈,再怎麼轉,也偵測不到 新進來的 報價資料。

結果大家都 不要 辦事。

DoEvents 把CPU 的時間,轉讓出去,伺候 別桌的客人。
這樣子,大家都可以動了,多好的 事情。
很像是 玩跳棋。你黨我,我擋你,大家都動不了
天下為公

TOP

回復 12# sjgau


   板大

其實Doevents 這個函數

能不能用白話文解釋一下呢@@" 我之前也有去查這個函數的資料

可能不是科班出生的關係吧

說真的 他的移交程式到底是什麼意思阿@@?

TOP

Timer 函數範例
本範例使用 Timer 函數來讓應用程式暫停。範例中在暫停時使用到 DoEvents 來將程式執行權讓給其它程式。

Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then
    PauseTime = 5    ' 設定暫停時間。
    Start = Timer    ' 設定開始暫停的時刻。
    Do While Timer < Start + PauseTime
        DoEvents    ' 將程式執行權讓給其它程式。
    Loop
    Finish = Timer    ' 讀取現在時刻。
    TotalTime = Finish - Start    ' 計算暫停所經過的時間。
    MsgBox "Paused for " & TotalTime & " seconds"
Else
    End
End If
天下為公

TOP

irnd(s1, 100, 999, c);

事先,讓 rv1= rv2= c

doEvents() 會傳回一個值 --> RV2
if (rv2 <> rv1 )  表示 doEvents() 已經把事情做完,
而且傳回 一個 新的值
天下為公

TOP

回復 9# sjgau

感謝
ss

TOP

回復 8# sunnyso

我有,請給我 一點點時間,
請慢慢地 密切觀察 這個 板板
天下為公

TOP

回復 7# sjgau


    有何方法計算效率差呢?
ss

TOP

        靜思自在 : 太陽光大、父母恩大、君子量大,小人氣大。
返回列表 上一主題