macros强制Excel出编辑模式

我有一个需要运行更新的macros。

如果Excel在编辑中,我需要一个macros来有Excel退出编辑模式,即控制。

自然的做法是使用Application.OnTimer方法,但是它有刚才提到的“编辑问题”。 被调用的函数在用户离开编辑模式之前不会被执行。

你可能会克服这个问题:这个解决scheme效率不高,但是你可能会从macros中获得控制权,并从计时器(或者你select的其他事件)中重新获得控制权。

以下代码来自Excel计时器function帮助。

在计时器倒计时(或者您正在等待其他事件)时,您可以继续在工作表上工作。

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 

您应该预先调用此macros,也许在打开的工作簿事件。
此外,可以保持循环,并在需要时重复更新。

您应该检查这个策略是否不影响您的特定工作表中使用的其他function。

这是不可能的,因为Excel在单元格编辑模式下不会运行任何macros。