在excel vba中解锁保护表中的列

Private Sub Worksheet_Activate() ActiveSheet.Protect "RS" ActiveSheet.Range("B:C").Locked = False End Sub 

我想上面的代码,但不工作,我想只解锁B和C列

在解锁范围之前,您正在保护工作表。 但是由于表被保护,范围不能被解锁。 交换两行,代码将工作:

 Private Sub Worksheet_Activate() ActiveSheet.Range("B:C").Locked = False ' unlock the cells, so they can be edited in a protected sheet ActiveSheet.Protect "RS" ' protect the sheet so only unlocked cells can be edited End Sub 
 Private Sub Workbook_Activate() Worksheets("ObjectDescriptionMapping").Range("B:C").Locked = False ' unlock the cells, so they can be edited in a protected sheet Worksheets("ObjectDescriptionMapping").Protect "RS" End Sub