2010-08-25 71 views
3

我有一個需要運行更新的宏。宏強制Excel出編輯模式

如果Excel在編輯中,我需要一個宏來讓Excel退出編輯模式,也就是控制。

+0

我假定你的意思是在一個現有的宏?你可以嘗試發送按鍵ESC? – blissapp 2010-08-25 21:44:10

+0

正確。添加一些東西強制excel。 那個想法,我該怎麼發一個esc鍵?任何代碼? – Merlin 2010-08-26 03:10:06

回答

1

執行此操作的自然方法是使用Application.OnTimer方法,但它具有剛剛提到的「編輯問題」。被調用的函數在用戶離開編輯模式之前不會被執行。您可以解決這個問題:這個解決方案效率不高,但是您可能會從宏控制並從計時器(或您選擇的任何其他事件)中重新獲得控制權。

以下代碼來自Excel計時器功能幫助。

當計時器倒計時(或者您正在等待其他事件)時,您可以繼續在工作表上工作。

Sub a() 
    Dim PauseTime, Start, Finish, TotalTime 
    If (MsgBox("Press Yes to fire update in 1000 secs", 4)) = vbYes Then 
     PauseTime = 1000 ' Set duration 1000 secs or whatever. 
     Start = Timer ' Set start time. 
     Do While Timer < Start + PauseTime 
      DoEvents ' Yield to other processes - THIS IS THE TRICK 
     Loop 
     Finish = Timer ' Set end time. 
     TotalTime = Finish - Start ' Calculate total time. 
     MsgBox "Paused for " & TotalTime & " seconds" 'Program your update HERE 
    Else 
    End 
    End If 
End Sub 

您應該事先調用此宏,也許在打開的工作簿事件中。
此外,可以保持循環繼續,並在需要時重複更新。

您應該檢查此策略是否不影響您的特定工作表中使用的其他功能。

2

這是不可能的,因爲Excel在單元格編輯模式下不會運行任何宏。