我创建了一个宏,该宏根据可以正常工作的单元格值进行过滤。
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宏放在工作表中,并将Macro1放在模块中。 该文件是.xlsm,运行其他宏没有任何问题,所以我不知道为什么它不起作用。我的猜测是我的名称可能做错了,所以这是名称:
答案 0 :(得分:1)
尝试一下:
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End Sub
答案 1 :(得分:0)
我更改了:
Private Sub Worksheet_Arbeitstabelle(ByVal Target As Range)
收件人:
Private Sub Worksheet_Change(ByVal Target As Range)
@Siddharth Rout将我链接到: Why MS Excel crashes and closes during Worksheet_Change Sub procedure?
在此说明,在Worksheet_
之后不必添加工作表的名称
因为代码存储在工作表中,所以不需要告诉它在哪里做东西,因为它不在模块中