当单元格改变时触发宏

时间:2015-09-24 19:07:31

标签: excel vba excel-vba

我知道有很多问题和答案,但我对VBA中的编程知识非常基础,而且我的工作时间很令人沮丧。

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

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

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

如何添加我的宏?我将End Sub保留在我的,所以有两个End Subs?我的宏存储在Module1

中的同一个excel书中

将这些结合到一个可行的帮助中的任何帮助都会很棒,我会把头发拉出来......

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

.jade