1

当我第一次打开我的工作簿时,我调用这个函数来保护特定的单元格范围和单元格不受用户的影响:

' 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()未指定为受保护的单元格现在变为受保护的单元格,这些单元格与该功能受影响的单元格完全相同。

有人可以向我解释为什么会发生这种情况以及如何避免这种情况吗?

4

1 回答 1

2

您的使用.Clear导致了问题。

.ClearContents改用,或在清除范围后重新设置锁定的属性。

.Clear清除整个对象,包括您将其锁定属性设置为 false 的部分。

于 2012-10-29T17:56:52.317 回答