此代碼用于執行時序,并取決于以正確間隔開始的每個段,該間隔由基于用戶輸入的變數設定。插入停止并逐步執行代碼后,它可以正常作業,沒有錯誤。當不停地執行命令按鈕“RunCommand”時,會按住 5 秒鐘,形狀 1 的前景色會發生變化,但形狀 2 不會發生變化。為了方便起見,我已經將代碼簡化為這個,因為這個接縫是給我問題的部分。我被卡住了,如果我只是運行代碼它不起作用,如果我單步執行代碼它作業正常????
Private Sub RunCommand_Click()
Dim EndTick As Date
EndTick = DateAdd("s", 5, Now())
Set myDocument = ActivePresentation.Slides(1)
With myDocument.Shapes("Arrow3rd2").Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
Do
If Now() > EndTick Then
With myDocument.Shapes("Arrow3rd1").Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
Else
DoEvents
End If
Loop Until Now() >= EndTick
End Sub
uj5u.com熱心網友回復:
的值Application.now最有可能在 期間發生變化DoEvents。所以你的程式流程是
檢查是否now > EndTick:如果是,請更改形狀的顏色。
如果不是這種情況,請給時間做其他事情( DoEvents)
--> 在此期間,現在會增加。
再次檢查if now > EndTick:如果是,則離開回圈。
所以顏色改變的部分可能沒有命中。
嘗試更改邏輯,以便If僅命中一次(代碼未經測驗)
Do
DoEvents
Loop Until Now() >= EndTick
With myDocument.Shapes("Arrow3rd1").Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/364550.html
上一篇:VBAIFAND基于兩列
下一篇:ExcelVBA-粘貼后添加單詞
