Excel VBA超时

时间:2014-06-10 09:53:07

标签: excel vba excel-vba

我想知道是否可以在Excel中创建VBA宏,这将在每X分钟保存一次文件。我已经想过如何在excel启动后初始化宏,我在google上发现这样的事情会暂停宏

Application.Wait(Now + TimeValue(" 0:10:00"))

但这也会阻止用户输入,并且在此期间他无法进行任何更改。

这不是防碰撞保护,我之所以需要这个,是因为有些用户忘记定期保存文件......

谢谢 弗朗西斯

1 个答案:

答案 0 :(得分:2)

Simoco的2个示例效果很好,但如果您想要防止不必要的保存(特别是如果您正在处理网络文件或大文件),您可以在每次更改时进行检查在工作表中。

只需使用Worksheet_Change函数即可,这是一种可能的模式:

Private Sub Worksheet_Change(ByVal Target As Range)


If (Now > TimeStamp)
    ThisWorkbook.SaveAs BlaBlaBlaBlaBla
    TimeStamp = Now + TimeValue("0:10:00")
End If

End Sub

TimeStamp需要是每个工作簿中定义的全局变量。

顺便说一句,确保每隔X分钟保存一次文件并不会影响excel的撤消/重做功能。我记得在使用自动保存功能时,我过去曾有过不想要的行为。

其他想法:Google文档不需要这种类型的宏,因为不需要保存。