用于更新“更改日期”的Excel宏使Excel崩溃
问题描述:
我有一个excel文件,其中我有几个表的字段为“Last change:”。如果对该表进行了任何更改,则该字段应更新为当前日期。用于更新“更改日期”的Excel宏使Excel崩溃
我实现了一个应该做它的宏,但不幸的是它禁用了非常恼人的“反向”(Strg + Z)函数。因此我编辑了这个宏,使得反向功能可以再次运行。我的宏现在看起来是这样的:
Option Explicit
Public Merker
Private Sub Worksheet_Change(ByVal Target As Range)
If Not ThisWorkbook.ReadOnly Then
Application.OnUndo "Rev. Change", "Wiederherstellen"
Merker = Cells(3, 2)
Cells(3, 2) = Date
End If
End Sub
Sub Wiederherstellen()
Cells(3, 2) = Merker
End Sub
当我申请这个宏时,Excel,只要我进行了更改文档崩溃。 我的代码中有无效的东西吗?我真的好奇,因为没有错误信息或错误的行为,但只有应用程序崩溃。这次崩溃每次都可靠发生。
感谢您的帮助!
答
您的事件很可能会在无限循环中自行调用。尝试禁用活动停止代码重新自称该线路上Cells(3, 2) = Date
Private Sub Worksheet_Change(ByVal Target As Range)
If Not ThisWorkbook.ReadOnly Then
Application.EnableEvents = False
Application.OnUndo "Rev. Change", "Wiederherstellen"
Merker = Cells(3, 2)
Cells(3, 2) = Date
Application.EnableEvents = True
End If
End Sub
+1
就是这样 - 解决了这个问题。非常感谢brettdj! – 2013-03-21 12:22:37
@Remou我明白你为什么重新加标签的这个,这在技术上是正确的,但很少有问题将仍然被标记[标签:VBA]如果这被广泛采用。这可能意味着这个标签应该被淘汰。就像它可能给出的Office应用程序可以自动执行其余的Office系列恕我直言,[标签:VBA]应该留下。 – brettdj 2013-03-22 01:40:47
感谢您的评论。同意。 – 2013-03-25 09:10:16