在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 Next
和On Error GoTo 0
行禁用特定工作表没有定义Worksheet_Change事件时发生的错误。 可能更好的做法是删除这些行并为每个工作表定义一个Worksheet_Change事件
我同意workbook_open上的@newguy。 尝试添加一行如
Run "Sheet1.worksheet_change", Range("I15")
将表单名称更改为要运行的表单,但要确保它们是在VB编辑器中显示的,而不是表单的实际名称。 以及范围,但你确实需要传递一些范围的工作sheet_changefunction。