Excel VBA清除数据功能保护以前未受保护的单元

时间:2012-10-29 17:25:12

标签: excel-vba vba excel

当我第一次打开我的工作簿时,我调用此函数来保护用户的特定单元格区域和单元格:

' 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()函数影响的细胞完全相同。

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

1 个答案:

答案 0 :(得分:2)

您使用.Clear会导致问题。

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

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