私はパスワードで保護されたシートを持っています。保護されたシートのコードでセルの値を変更することはできません
ユーザーが値を変更すると、自動的に他のロックされていないセルをvbaコードで変更する必要があります。シートがロックされていても保護されている場合はうまく動作しません。
コードの例:のWorkbook_Openで
()IはTRUEにUserInterfaceOnly属性を設定:
Sheets("Sheet Name").Protect Password:="123456", UserInterFaceOnly:=True, Contents:=True
シートコード:date.01場合date.02セルにdate.01値を設定
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("date.01")) Is Nothing Then
Worksheets("Sheet Name").Range("date.02") = Target
End If
End Sub
細胞 "date.01" と "date.02" に変更するロック解除されます。
なぜ更新できませんか?
EDIT:
は、SelectionChangeイベントは、セルの値を変更するための最良の選択肢ですか?
Worksheets("Sheet Name").Range("date.02") = Target
元のセルにフォーカスが戻ったときに変更が適用されることがわかります。
私が実際にやりたいことは、ユーザーがいずれかを変更するといつでも、異なるシートのセルグループに同じ値を与えることです。
解決済み。
私の悪い、私はまた、すべてのエラーを防ぐために、これを使用していた
Worksheet_SelectionChange
代わりの
Worksheet_Change
を使用していました。
Application.EnableEvents = False
<CODE>
Application.EnableEvents = True
すべてのセル/範囲がロックされているため、UserInterfaceOnlyを使用する必要はありませんでした。
'シート( "シート名")してくださいパスワードの保護:。= "123456"、UserInterFaceOnly:= Falseを、内容量:=真' – R3uK
同じですが、変更されません。私は、セルに日付の検証規則があると言っているのを忘れていました。 – giorgiline
メッセージはスローされますか?検証ルールにエラーメッセージを追加します。エラーが発生しているかどうかを知ることができます。 – R3uK