如何将我的macros修改为允许用户在Excel 2010中复制过去的行

我有一个基于其他行的值禁用某些行的macros,女巫工作正常

Private Sub Worksheet_Change(ByVal Target As Range) Call SecurityColumnsLookup(Target) End Sub Private Sub Workbook_Open(ByVal Target As Range) Call SecurityColumnsLookup(Target) End Sub Private Sub SecurityColumnsLookup(ByVal Target As Range) On Error GoTo MyErr Err.Clear ActiveSheet.Unprotect Application.EnableEvents = False Select Case Range("V" & (Target.Row)).Value //do stuff End Select ActiveSheet.Protect Application.EnableEvents = True Exit Sub MyErr: On Error Resume Next ActiveSheet.Protect Application.EnableEvents = True Exit Sub End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call SecurityColumnsLookup(Target) End Sub 

我想知道的是如何将代码添加到我的macros,以允许用户复制和过去的行,因为现在正在发生的事情,是我每次点击不受保护的表单,只要我点击其他地方,macros将重新保护它

是否可以随时启用复制/过去function?

谢谢

最快的方法就是检查excel是否处于剪切/复制模式

 Private Sub Worksheet_Change(ByVal Target As Range) If Application.CutCopyMode <> xlCopy Or xlCut Then Call SecurityColumnsLookup(Target) End If End Sub