工作表中的每个工作表的工作表更改事件

有没有一种方法可以在全球各地安装触发每个工作表上的更改事件?

我有一个工作簿52张,我想要触发相同的事件处理程序。 包含代码的中央模块将有助于pipe理触发器代码,但我不想将代码添加到每个工作表。

有没有办法做到这一点? 在工作簿模块中实现它并没有触发任何东西。

使用Workbook_SheetChange事件macros。 Sh是传入的工作表对象 , 目标是已经接收到更改的一个或多个单元格。 一个简单的With … End With语句应该足以本地化接收更改的工作表。

一个简单的时间戳事件可能看起来像这样。

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) With Sh If Not Intersect(Target, .Columns(1)) Is Nothing Then On Error GoTo bm_Safe_Exit Application.EnableEvents = False Dim rng As Range For Each rng In Intersect(Target, .Columns(1)) rng.Offset(0, 4) = Now Next rng End If End With bm_Safe_Exit: Application.EnableEvents = True End Sub 

对任何工作表的列A中的单元格所做的任何更改都会导致将当前date时间放入同一工作表和行的列E中。 新创build的工作表将立即受到影响。 您可以分析受其工作表.CodeName属性或Worksheet .Name属性影响的工作表。 Worksheet.Index属性不build议,除非您locking工作簿结构,以便无法重新sorting工作表。

你应该使用:

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 

它像Sheet_Change事件一样工作,除了代替Me. ,你会用Sh. 来引用触发事件的表单。