DoEvents可以將控制權轉移給操作系統,程序可以在後臺運行,這樣可以避免假死,讓妳在電腦上做壹些其他的事情。
但是,也存在很大的隱患。在程序完成之前,請不要對EXCLE工作簿做任何操作,比如不要切換工作表,不要編輯表格等等,以免出現不可預知的錯誤。
另外,專心做壹件事肯定比三心二意更省時間,讓系統專心運行程序比妳在運行程序的同時在電腦上做其他事情更省時間。
另外妳說每次重算需要45秒,那麽每個單循環需要重算三次,大概需要2到3分鐘。如果要循環360次,需要12到18小時。這是壹個嚴重的傷害。妳要做好心理準備,能夠長期阻止戰爭。
代碼和圖片如下:
子循環重新計算處理()
昏暗的i & amp,iZhi1美元,iZhi2美元,iCs美元
求初始值1
申請。Speech .說出“請輸入第壹個初始值”
IZhi1 = InputBox("請輸入第壹個初始值","初始值1 ")。
如果iZhi1 = " "則退出Sub
求初始值2
申請。Speech .說出“請輸入第二個初始值”
IZhi2 = InputBox("請輸入第二個初始值","初始值2 ")
如果iZhi2 = " "則退出Sub
詢問周期數
申請。語音。說出“請輸入循環次數”
ICs = InputBox("請輸入周期數","周期數")
如果iCs = " "那麽
出口接頭
else if Val(iCs)& lt;那麽1
MsgBox "循環次數不能為
出口接頭
如果…就會結束
確認參數。如果參數錯誤,給機會取消執行。
申請。Speech.Speak“請確認參數,如果參數錯誤,請取消執行。”
如果MsgBox("請確認參數:" &;vbLf & ampvbLf & amp_
"初始值1:" &;iZhi1。vbLf & amp"初始值2:" &;iZhi2 & ampvbLf & amp_
"周期數:" &;ICs,vbOKCancel,"請確認參數")= vbcanceltexitsub。
開始循環
對於i = 1到Val(iCs)'遍歷1到iCs。
Range("D3") = iZhi1 '將第壹個值寫入D3。
申請。“計算”重新計算所有工作簿
如果不是應用程序。CalculationState = xldone然後執行事件的轉移控制。
申請。“計算”重新計算所有工作簿
如果不是應用程序。CalculationState = xldone然後執行事件的轉移控制。
Range("C9") = iZhi2 '將第二個值寫入C9。
申請。“計算”重新計算所有工作簿
如果不是應用程序。CalculationState = xldone然後執行事件的轉移控制。
' izhi 1 = izhi 1+1 '累加
IZhi2 = iZhi2+1 '累加
然後
申請。講話。講“處理完畢”
MsgBox“完成!”,,"提示"
末端接頭