Private Sub Worksheet_Activate()
ActiveSheet.Protect "RS"
ActiveSheet.Range("B:C").Locked = False
End Sub
我想上面的代碼,但沒有工作,我想解開只有B和C柱解鎖列
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
感謝它的工作 –
發生運行時錯誤,在選擇頁面時「啓用設置範圍類的鎖定屬性」 –
嗯,第一次運行代碼時,它會鎖定工作表。您已選擇將代碼放入Worksheet Activate模塊。因此,下次工作表被激活時(請記住,它已經被保護),代碼嘗試解鎖一些單元格,這將失敗,因爲工作表受到保護。簡而言之:在開始編碼之前,您需要理清代碼邏輯。不要只是放入代碼,然後看看會發生什麼。先制定計劃。它通常有幫助。 – teylyn
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
通過在Workbook_Activate事件中添加代碼 –
什麼是上面代碼的效果? 「不工作」不是一個非常明確的描述。沒有任何鎖定?沒有解鎖嗎? – Floris