2

パスワード付きのシートがあります。しかし、vba コードからいくつかのデータを追加する必要があります。これどうやってするの?パスワードをリセットしてから、データを追加してから再度設定できるかもしれません

 Me.Parent.Worksheets("Sheet1").Unprotect 111

Me.Parent.Worksheets("Sheet1").Protect Password:=111, DrawingObjects:=True, Contents:=True, Scenarios:=True

単純なパスワードを使用するとコードは機能しますが、pass: pass111111 を設定するとエラーが発生します 間違ったパスワード

4

3 に答える 3

3

ワークシートを保護するためにこのコードをお勧めします

Sub ProtectSheet()
    Sheets("Sheet1").Protect Password:="111111", _
    Contents:=True, userInterfaceOnly:=True
End Sub

の使用に注意してくださいuserInterfaceOnly:=True

UserInterfaceOnly上記のように引数を に設定して Protect メソッドを使用するとTrue、ユーザー インターフェイスは保護されますが、マクロは保護されません。したがって、マクロからデータを追加するためにシートの保護を解除する必要はありません。アクションを直接実行できます。例えば

Sub ProtectSheet()
    Sheets("Sheet1").Protect Password:="111111", _
    Contents:=True, userInterfaceOnly:=True

    Sheets("Sheet1").Range("A1").Value = "Hello World!"
End Sub
于 2012-09-27T13:28:34.837 に答える
2

それは簡単です:

sub Protect_Sheet()
Thisworkbook.Sheets(1).Unprotect Password:="Password"

'Do something 

Thisworkbook.Sheets(1).Protect Password:="Password"

End Sub
于 2012-09-27T10:13:42.693 に答える
0

Password = 111You will have to unprotect with that password, you will have to unprotect with that password, その後、新しいパスワードで再保護できます

        Me.Parent.Worksheets("Sheet1").Unprotect Password:="111"

        Me.Parent.Worksheets("Sheet1").Protect Password:="pass111111", DrawingObjects:=True, Contents:=True, Scenarios:=True

それが私がこれを説明するために考えることができる唯一の理由です。

于 2012-09-27T13:13:29.877 に答える