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

ただし、次のサブルーティングを呼び出して、行の範囲からデータを消去すると:

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、範囲をクリアした後にロックされたプロパティを再設定してください。

.Clearlocked プロパティを false に設定した部分を含め、オブジェクト全体をクリアします。

于 2012-10-29T17:56:52.317 に答える