2014-01-27 60 views
0

我正在开发工作表。当员工自己完成一行或我的经理需要能够将我们的姓名放在J栏中以锁定各行以防止进一步编辑时。有没有办法做到这一点?Excel注销并锁定行

+0

您是否尝试过解锁您希望其他人能够访问并保护工作表的单元格? – pnuts

回答

0

首先解锁表格中的每个单元格。然后保护工作表。

下一页此代码添加到工作表事件模块:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim C As Range 
If Target.Column = 4 Then 'IF Changed cell is in Column D 
    For Each C In Target.Cells 
     If C.Value = "YourName" Or C.Value = "YourManagersName" Then 
      ActiveSheet.Unprotect 

      C.EntireRow.Locked = True 

      ActiveSheet.Protect 
     End If 
    Next C 
End If 

End Sub 

现在,如果在特定的列中输入的2名之一,那么它将锁定该行。

如果你想有一个密码使用:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim C As Range 
If Target.Column = 4 Then 'IF Changed cell is in Column D 
    For Each C In Target.Cells 
     If C.Value = "YourName" Or C.Value = "YourManagersName" Then 
      ActiveSheet.Unprotect "Password" 

      C.EntireRow.Locked = True 

      ActiveSheet.Protect "Password" 
     End If 
    Next C 
End If 

End Sub 

注:这也将让你在一杆锁定多个行。