Excel 工作表更改事件触发的复制粘贴值无效

Excel 工作表更改事件触发的复制粘贴值无效,excel,vba,worksheet,Excel,Vba,Worksheet,我正在使用工作表更改事件触发复制粘贴值。工作表更改代码在表2中 Sub worksheet_change(ByVal Target As Range) Application.EnableEvents = True Set Target = Range("AB2") If Target.Value = "OK" Then Call myTR1 End If 请注意,AB2单元格从另一张表中获取其值 复制粘贴代码位于模块中 Sub myTR1() Sheets("BA1").Range(

我正在使用工作表更改事件触发复制粘贴值。工作表更改代码在表2中

Sub worksheet_change(ByVal Target As Range)
Application.EnableEvents = True
Set Target = Range("AB2")
If Target.Value = "OK" Then
    Call myTR1
End If
请注意,AB2单元格从另一张表中获取其值

复制粘贴代码位于模块中

Sub myTR1()
Sheets("BA1").Range("AR6:AS8").Value = Sheets("BA1").Range("AL17:AM19").Value
End Sub

当目标范围更改为“确定”时,不会触发我的复制粘贴宏。我做错了什么?

使用eaxct代码是可行的,尽管示例中没有end sub

编辑: 记住“OK”是区分大小写的,所以必须使用大写才能启动,如果您希望它在lower或upper上启动,可以使用第二个代码

    Sub worksheet_change(ByVal Target As Range)
    Application.EnableEvents = True
    Set Target = Range("AB2")
    If Target.Value = "OK" Then
        Call myTR1
    End If
    End Sub


您的
工作表\u更改
有小的
w
和小的
c
,因此我猜代码在一个模块中,而不是相关的工作表。请尝试使用
Target
以外的其他名称作为变量,例如
TargetCell
。这不是VBA中的“特殊”字吗?@SJR是的,出现工作表更改事件代码。复制和粘贴值代码在其中一个模块中。
请注意,AB2单元格从另一个表中获取其值
噢,该死!!!!我只是注意到。。。在这种情况下,
工作表\u更改
将不起作用。您可能需要从
工作表\u计算()
视角重新考虑这一点。我正在使用End Ifs跟踪多个单元格AB2、AB3…AB200。我在末尾有一个接头。我更改的值“OK”是大写,但是单元格AB2-AB200链接到其他工作表。也许这就是为什么更改事件没有触发宏,严格来说值没有更改,只是更新了公式?有解决办法吗?谢谢。我不太确定,因为作为一个测试,我刚把AB2的值设为“=AB5”,然后我把AB5的值改为“OK”,这会更新AB2单元格,然后它会触发工作表更改事件谢谢检查。它在其他列中对我有效,而不是AB。我刚刚将跟踪器列更改为AC,工作表更改事件现在正在触发宏。我不知道为什么AB列在一开始就不起作用。
    Sub worksheet_change(ByVal Target As Range)
    Application.EnableEvents = True
    Set Target = Range("AB2")
    If Target.Value = "OK" Or Target.Value = "ok" Then
        Call myTR1
    End If
    End Sub