2017-09-27 131 views
0

我有一個代碼,我想申請。該宏的目標是當雙擊相關單元格時間戳應用,然後單元格被鎖定編輯。如果需要編輯單元格,則需要應用密碼。鎖定/解鎖單元excel VBA

問題是我無法獲得鎖定的單元格和密碼工作。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    Application.EnableEvents = False 

    With Target 
     If .Column = 4 Then 
      Select Case .Row 
       Case 20, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 40, 42, 43, 44, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65 
        .Value2 = "Prepared By" & " " & Environ("Username") 
        .Value2 = .Value2 & " " & Format(Now, "yyyy-MM-dd hh:mm:ss") 
        .Value2 = .Locked = True 
        .Value2 = ActiveSheet.Protect Password:="Test" 
        End Select 
        End If 
    End With 
End Sub 

回答

0

這是否做這項工作?不確定如果有人想要更改已填充的單元格,會發生什麼情況。你可以有一個單獨的SelectionChange或Change事件來處理它。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

With Target 
    If .Column = 4 Then 
     Select Case .Row 
      Case 20, 24, 25, 27, 28, 30 - 35, 37, 38, 40, 42 - 44, 54 - 56, 58, 59, 61 - 65 
       ActiveSheet.Protect Password:="Test", userinterfaceonly:=True 
       .Value2 = "Prepared By" & " " & Environ("Username") 
       .Value2 = .Value2 & " " & Format(Now, "yyyy-MM-dd hh:mm:ss") 
       .Locked = True 
     End Select 
    End If 
End With 

End Sub 
+0

感謝它,它可以鎖定單元格。我會假設,如果我雙擊將要求密碼,因爲它被鎖定。 – James

+0

因此,有人雙擊單元格,你想添加日期等,但你希望他們能夠回去編輯單元格? – SJR

+0

用戶將雙擊單元格並將其鎖定。但是負責修改文件的其他用戶應該能夠雙擊受保護的單元並輸入密碼來解鎖單元。 – James