当单元格更改时触发一个macros

我知道有大量的问题和答案,但是在VBA编程方面我已经有了一个非常基本的知识,而且我正在做一个令人沮丧的工作。

我有一张有1000行员工的表,每行都以他们的经理名字开头。 即列A具有经理姓名,列B,C,D等具有其他信息。

我当前macros查看单元格J1中的文本,并将其与列A中的文本进行比较。J1使用“= worksheet1!A1”types的事物从另一个工作表中填充。

Sub hiderows() BeginRow = 2 EndRow = 1000 ChkCol = 1 For RowCnt = BeginRow To EndRow If Cells(RowCnt, ChkCol).Value = Cells(1, "J") Then Cells(RowCnt, ChkCol).EntireRow.Hidden = False Else Cells(RowCnt, ChkCol).EntireRow.Hidden = True End If Next RowCnt End Sub 

我想要得到的是当J1的值发生变化时(例如,从Tim到Jake),它会自动运行。 我发现了一些代码来做到这一点,但我不能得到它的工作。

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Target.Worksheet.Range("$J$1")) Is Nothing Then Application.Run _ 'your macro here End If End Sub 

我如何添加我的macros? 我是否保留End Sub,以便有两个End Subs? 我的macros被存储在Module1中的同一个excel书中

任何帮助将这些结合到一个可行的帮助将是伟大的,我拉我的头发在这里…

这应该做的伎俩:

 Private Sub Worksheet_Calculate() Application.EnableEvents = False For i = 2 To 1000 Rows(i).EntireRow.Hidden = (Cells(i, 1).Value = Range("J1").Value) Next Application.EnableEvents = True End Sub