首页 > 解决方案 > 多个外部工作簿的 Worksheet_Change 事件

问题描述

我有一个类模块,它充当外部工作簿的 Worksheet_Change 事件。我正在修改我的项目,当前设置只允许一个外部工作簿 sheet_change 事件。但是,我会喜欢此事件以侦听多个工作簿上的更改。

工作簿的数量直到代码中途才知道,因此我无法为每个工作簿创建预定数量的类。

模块Functions

Dim oWb2 As New UpdaterUnkowns

Public Function
'Code...
Set oWb2.Workbook = newfile
End Function

类模块UpdaterUnknowns

Public WithEvents m_wb As Workbook
Public CellVal As String

Public Property Set Workbook(wb As Workbook)
    Set m_wb = wb
End Property

Public Property Get Workbook() As Workbook
    Set Workbook = m_wb
End Property

Public Sub m_wb_SheetChange(ByVal Sh As Object, ByVal Target As Range)

'Code...

End Sub

Set oWb2.Workbook = newfile设置类模块的工作簿。我可以将多个工作簿传递给活动吗?

标签: excelvbaclassevents

解决方案


要处理每个打开的工作簿,您可以执行以下操作:

Dim UU_collection As Collection
sub mysub()
   Set uu_collection = New Collection
   Dim wb As Workbook
   For Each wb In Application.Workbooks
      Dim oWb2 As UpdaterUnknowns
      Set oWb2 = New UpdaterUnknowns
      Set oWb2.Workbook = wb
      uu_collection.Add oWb2
   Next wb
End Sub

推荐阅读