宏强制Excel退出编辑模式
我有一个宏需要运行更新宏强制Excel退出编辑模式,excel,vba,Excel,Vba,我有一个宏需要运行更新 如果Excel处于编辑状态,我需要一个宏使Excel退出编辑模式,即控制。这是不可能的,因为Excel在单元格编辑模式下不会运行任何宏。执行此操作的自然方法是使用Application.OnTimer方法,但它有您刚才提到的“编辑问题”。在用户离开编辑模式之前,不会执行被调用的函数 您可以克服这个问题:这个解决方案不是很有效,但是您可以从宏中产生控制,并从计时器(或您选择的任何其他事件)中重新获得控制 以下代码来自Excel计时器函数帮助 当计时器倒计时(或等待其他事件)
如果Excel处于编辑状态,我需要一个宏使Excel退出编辑模式,即控制。这是不可能的,因为Excel在单元格编辑模式下不会运行任何宏。执行此操作的自然方法是使用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
suba()
暗暂停时间、开始、结束、总时间
如果(MsgBox(“按Yes以在1000秒内触发更新”,4))=vbYes,则
PauseTime=1000'设置持续时间1000秒或其他。
开始=计时器“设置开始时间。
定时器<启动+暂停时间时执行
DoEvents对其他流程的让步——这就是诀窍
环
完成=定时器设置结束时间。
TotalTime=完成-开始'计算总时间。
MsgBox“暂停时间”&TotalTime&“秒”在此处编程更新
其他的
终点
如果结束
端接头
您应该事先调用此宏,可能在打开工作簿事件时调用。此外,还可以保持循环,在需要时重复更新
您应该检查此策略是否不会干扰特定工作表中使用的其他功能 我想你的意思是在现有宏中?你能试着发送钥匙吗?正确。为强制excel添加一些内容。这是一个想法,我如何发送esc键?有密码吗?
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