2015-08-24 37 views
1

我有禁用基於其他行的值一些列宏,女巫工作正常如何修改我的宏允許用戶過去排在Excel中複製2010

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 

我想什麼知道如何將代碼添加到我的宏中,以便允許用戶複製和過去行,因爲現在正在發生的事情是,每當我點擊不受保護的工作表時,只要我點擊其他地方,宏就會重新保護它

是否可以隨時啓用複製/過去功能?

謝謝

+1

是否有要處理的工作表,不調用'SecurityColumnsLookup'?如果是這樣,只需添加像'如果ActiveSheet <>表(「whateversheet」)然後呼叫安全...'。你是否需要這是一個worksheet_change事件? – BruceWayne

回答

1

最快的辦法也只是檢查是否Excel是在剪切/複製模式

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

它沒有工作,但這工作如果Application.CutCopyMode <> 1或如果Application.CutCopyMode <> 2然後 呼叫SecurityColumnsLookup(目標) 結束如果@sorceri謝謝你的提示:) – napi15