Events 类模块内的工作表事件

Events 类模块内的工作表事件,events,vba,excel,Events,Vba,Excel,我已经创建了一个用于更改选定单元格颜色的代码。 通常我会将代码放在Sheet1 VBA文件中,或者任何我正在使用它的工作表中 我想把它放在一个类模块文件中,这样可以更容易地实现到另一个工作表或excel文件中 课堂模块是不是一个好地方?我的全部想法是有两个这样的事件,以及一些简单的方法来打开和关闭它们,以及将代码迁移到另一个excel文件 你认为什么是最好的方法 代码如下所示: Private Sub Worksheet_SelectionChange(ByVal Target As Range

我已经创建了一个用于更改选定单元格颜色的代码。 通常我会将代码放在Sheet1 VBA文件中,或者任何我正在使用它的工作表中

我想把它放在一个类模块文件中,这样可以更容易地实现到另一个工作表或excel文件中

课堂模块是不是一个好地方?我的全部想法是有两个这样的事件,以及一些简单的方法来打开和关闭它们,以及将代码迁移到另一个excel文件

你认为什么是最好的方法

代码如下所示:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If (Range("A1").Value = "yes") Then
        Dim iColor As Integer
        On Error Resume Next
        iColor = Target.Interior.ColorIndex
        iColor = 36
        Cells.FormatConditions.Delete
        Target.FormatConditions.Add Type:=2, Formula1:=iInternational
        Target.FormatConditions(1).Interior.ColorIndex = iColor
    Else
        Cells.FormatConditions.Delete
    End If
End Sub

悉达思是正确的。您不需要类模块。为了解决您的问题,您可以编写代码来更新工作簿代码,以便可以将任何give.bas文件中的任何给定模块复制到工作簿中的任何对象中

因此,如果您在myLibrary.bas中有工作表更改代码,您可以将其复制出来,并将其放置在工作簿中的每个工作表对象中


这里有一个很好的地方让您开始学习:

将此代码放入此工作簿-
私有子工作簿\u SheetChange(ByVal Sh作为对象,ByVal Target作为范围)
也将实现您想要的。对于这样一件简单的事情,不需要类模块:)问题是,我想将它推广到多个excel文件中使用。我希望它是简单地导入到任何excel文件。通过类模块,我可以将它导入excel,而不必在每个excel文件中复制/粘贴它,所以没有任何自动化的方法可以做到这一点?我总是必须将代码从.bas文件或其他任何地方复制到工作表对象?我建议您自动处理代码。您将要存储为“库”的所有代码粘贴到一个工作簿中,并编写一个函数将某些模块选择到所选工作簿中。谢谢。我还没有想到那个解决办法。