在Excel打开时调用工作表更改事件

我有一个Excel工作簿中的多张工作表更改事件。

当我打开Excel工作簿时,我想要调用所有这些更改事件。

到目前为止,我还没有得到它的工作,或找出一个办法做到这一点。 我查了一下,但是我一直没能find任何可以解决这个问题的方法。

有人可以帮我这个吗?

@Histerical和@newguy肯定有很好的build议。 检查工作簿和工作表事件,如列在https://msdn.microsoft.com/en-us/library/office/dn301171.aspx 。 您可以将Workbook_Open()事件添加到ThisWorkbook中,如下所示。 下面的代码将遍历工作簿中的每个工作表并运行Worksheet_Change(如果存在)。

 Private Sub Workbook_Open() Dim s As Worksheet On Error Resume Next For Each s In Worksheets Run s.CodeName & ".Worksheet_Change", Range("A1") Next On Error GoTo 0 End Sub 

On Error Resume NextOn Error GoTo 0行禁用特定工作表没有定义Worksheet_Change事件时发生的错误。 可能更好的做法是删除这些行并为每个工作表定义一个Worksheet_Change事件

我同意workbook_open上的@newguy。 尝试添加一行如

 Run "Sheet1.worksheet_change", Range("I15") 

将表单名称更改为要运行的表单,但要确保它们是在VB编辑器中显示的,而不是表单的实际名称。 以及范围,但你确实需要传递一些范围的工作sheet_changefunction。