爲OnTime方法的一部分:SendKeys語句失敗,我使用下列步驟來執行
Public Sub Countdown()
ThisWorkbook.Activate
SendKeys ("{ESC}")
ThisWorkbook.Close False
End Sub
這裏的想法是要關閉工作簿,一旦某個時間段過去;並且如果工作簿處於編輯模式,則「SendKeys(」{ESC}「)」語句應該停用編輯模式。問題是它不這麼做!一旦我手動按下「ESC」按鈕,只有這樣我的程序纔會運行。 如果您能幫助我瞭解我在這裏做錯了什麼,我將不勝感激。
UPDATE: 繼@Jeeped的建議,我已經通過添加DoEvents
線更新上面的代碼:
Public Sub Countdown()
ThisWorkbook.Activate
SendKeys ("{ESC}")
DoEvents
ThisWorkbook.Close False
End Sub
我所注意到的是,此過程的工作(而在編輯模式下)只有我只需按下創建的窗體控件按鈕即可手動運行它。 爲什麼不作爲代碼的一部分運行是我無法理解的。
問題在於,當您處於編輯模式時,OnTime程序不會運行,因此它是Catch22。 – Rory
@Rory,謝謝你把這個帶給我。我不知道!而且我很厭倦了這些Catch 22的東西......) 有沒有任何你知道的周而復始的方式? –
您將需要Windows計時器 - 類似於Jaafar在此處發佈的代碼:http://www.mrexcel.com/forum/excel-questions/392397-problems-running-clock-worksheet-cell.html#post1956353 – Rory