2017-10-23 6 views
0

このコードをワークシートに挿入しました。個々のワークシートが個々のパスワードで保護されていることを確認する必要があります。それはうまくいくようですが、私はワークシートにアクセスしようとしていて、それらのすべてが間違ったパスワードを言っていますか?VBAを使用してExcelで個々のワークシートを自動保護する方法は?

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    With ThisWorkbook 
     .Worksheets("2073 NSW").Protect Password = "2073" 
     .Worksheets("2091 NSW").Protect Password = "2091" 
     .Worksheets("3105 VIC").Protect Password = "3105" 
     .Worksheets("3091 VIC").Protect Password = "3091" 
     .Worksheets("4058 QLD").Protect Password = "4058" 
     .Worksheets("4091 QLD").Protect Password = "4091" 
     .Worksheets("6024 WA").Protect Password = "6024" 
     .Worksheets("6091 WA").Protect Password = "6091" 
    End With 
    Application.EnableAnimations = False 
    ThisWorkbook.Save 
    Application.EnableEvents = True 
End Sub 

答えて

1

問題はWith ThisWorkbook行内です。 Password:="2073"ではないPassword = "2073"
特定の名前付き引数に値を代入していた:=を使用するのを忘れました。

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    With ThisWorkbook 
     .Sheets("2073 NSW").Protect Password:="2073" 
     .Sheets("2091 NSW").Protect Password:="2091" 
     .Sheets("3105 VIC").Protect Password:="3105" 
     .Sheets("3091 VIC").Protect Password:="3091" 
     .Sheets("4058 QLD").Protect Password:="4058" 
     .Sheets("4091 QLD").Protect Password:="4091" 
     .Sheets("6024 WA").Protect Password:="6024" 
     .Sheets("6091 WA").Protect Password:="6091" 
    End With 
    Application.EnableAnimations = False 
    ThisWorkbook.Save 
    Application.EnableEvents = True 
End Sub 
関連する問題