多个单元格值更改以触发macros

单元格G3:G4和D15:D10000中有不同的一组值。 当G列或D列改变时,我想运行两个独立的代码。 我怎样才能确定哪一组列被更改?

在工作表代码窗格中input

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("G3:G4")) Is Nothing Then 'code when some cell in range "G3:G4" is changed ElseIf Not Intersect(Target, Range("D15:D10000")) Is Nothing Then 'code when some cell in range "D15:D10000" is changed End If End Sub 

将下面的代码放在您的相关工作表的Worksheet_Change事件中。

 Private Sub Worksheet_Change(ByVal Target As Range) Dim WatchRange As Range Dim IntersectRange As Range Set WatchRange = Application.Union(Range("G3:G4"), Range("D15:D10000")) Set IntersectRange = Intersect(Target, WatchRange) If Not IntersectRange Is Nothing Then Select Case Target.Column Case 4 ' column D Call A Case 7 ' column G Call B End Select End If End Sub 

以下是Sub ASub B例子:

 Sub A() MsgBox "Running Sub A" End Sub Sub B() MsgBox "Running Sub B" End Sub