我在Excel工作簿中的多个工作表中有工作表更改事件。
打开excel工作簿时,我想调用所有这些更改事件。
到目前为止,我还没有能够让它工作或找到一种方法来实现它。我查了一下,但是我找不到任何能说明如何完成这件事的事。
有人可以帮帮我吗?
答案 0 :(得分:1)
@Histerical和@newguy肯定有很好的建议。查看工作簿和工作表事件,如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 Next
和On Error GoTo 0
行会禁用特定工作表未定义Worksheet_Change事件时发生的错误。删除这些行并为每个工作表定义一个Worksheet_Change事件可能是更好的做法
答案 1 :(得分:0)
我同意workbook_open上的@newguy。尝试添加一行,例如
Run "Sheet1.worksheet_change", Range("I15")
将工作表名称更改为您要运行的工作表,但请确保它们是在VB编辑器中显示的方式,而不是工作表的实际名称。除了范围之外,您还需要传递一些范围才能使workheet_change正常运行。