如何退出macros

这是我的代码。 我正在阅读一张纸,并在另一张纸上search这个词。 如果searchfind匹配,它将复制整行并粘贴到第一张纸上。 search,复制和粘贴工作。 我不收到一个错误,但它就好像macros不停止,因为Excel不会让我点击macros读取的原始单元格。 我是否缺less应该结束macros的代码行? 理想情况下,它应该只是粘贴后的macros结束。

我从另一个线程去掉代码: 如何将复制的行从一张纸粘贴到另一张纸上

Sub Ref() Dim rng1 As Range Dim rng2 As Range If Range("A11") = "SELECT" Then Else Set rng1 = Worksheets("MAIN").Range("A11") For Each rng2 In Worksheets("REF").Range("A11:A2000") If rng1 = rng2(1).Value Then rng2.EntireRow.Copy rng1.EntireRow.PasteSpecial (xlPasteFormulas) Exit For End If Next rng2 End If End Sub 

这是我称之为macros的地方

 Private Sub Worksheet_Selection_Change(ByVal Target As Range) Call Ref End Sub 

先谢谢你

您需要停止粘贴以重新触发更改事件:

 ... Application.EnableEvents=False rng1.EntireRow.PasteSpecial (xlPasteFormulas) Application.EnableEvents=True ... 

编辑:你可能应该使用worksheet_change事件,而不是selection_change 。 您可以处理启用该事件的事件:

 Private Sub Worksheet_Change(ByVal Target As Range) If not application.intersect(me.range("A11"),Target) is nothing then Application.EnableEvents=False Call Ref Application.EnableEvents=True End if End Sub