【发布时间】:2019-04-08 18:12:15
【问题描述】:
我创建了一个基于单元格值进行过滤的宏,效果很好。
Range("A1:L1").AutoFilter Field:=4, Criteria1:=Range("U1")
每次单元格值更改时,我都需要运行此宏。 我写了一个宏,但它不起作用我没有收到任何错误,只是没有任何反应。
我试过了:
Private Sub Worksheet_Tabelle1(ByVal Target As Range)
If Target.Address = "$U$1" Then
Application.EnableEvents = False
Range("A1:L1").AutoFilter Field:=4, Criteria1:=Range("U1")
Application.EnableEvents = True
End If
End Sub
这个版本应该只执行代码而不是调用宏。我将 Worksheet_xxxxx 更改为工作表名称并尝试了其他方法。
我也试过了:
Private Sub Worksheet_Arbeitstabelle(ByVal Target As Range)
If Target.Address = "$U$1" Then
Call Macro1
End If
End Sub
此版本应调用以下宏:
Sub Macro1()
Range("A1:L1").AutoFilter Field:=4, Criteria1:=Range("U1")
End Sub
我将所有 Private Sub 宏放在 Worksheet 上,并将 Macro1 放在一个模块中。 该文件是 .xlsm 并且运行其他宏没有任何问题,所以我不知道它为什么不起作用。我的猜测是我可能对名称做错了所以这里是名称:
【问题讨论】:
-
@FunThomas 我在问题中提到我将代码放在模块中
-
@SiddharthRout 谢谢我阅读了答案并将 Worksheet_Tabelle 更改为 Worksheet_change 现在它的工作非常感谢