当我第一次打开我的工作簿时,我调用此函数来保护用户的特定单元格区域和单元格:
' Sets protection on sheet
Public Sub LockCells_TXN_CLIENT_ORDER_ENTRY()
ActiveSheet.Unprotect Password:="abc"
ActiveSheet.Cells.Locked = False
' Lock some cells here
ActiveSheet.Protect Password:="abc"
End Sub
但是,在调用以下Subrouting以清除一系列行中的数据时:
Private Sub ClearData_Click()
' Declare some variables
For currentRow = ActiveSheet.Range("STATUS_FIELDS").Row To totalRows
ActiveSheet.Cells(currentRow, ActiveSheet.Range("STATUS_FIELDS").Column).Resize(1, 14).Clear
Next currentRow
End Sub
现在未指定受保护的细胞受到保护,这些细胞与ClearData_Click()
函数影响的细胞完全相同。
有人可以向我解释为什么会发生这种情况以及如何避免这种情况?
答案 0 :(得分:2)
您使用.Clear
会导致问题。
使用.ClearContents
代替,或在清除范围后重新设置锁定属性。
.Clear
清除整个对象,包括将其锁定属性设置为false的部分。