2017-09-27 212 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