如何使用VBA自动保护Excel中的单个工作表?

如何使用VBA自动保护Excel中的单个工作表?,excel,vba,Excel,Vba,我已将此代码放入工作表中,该工作表应确保各个工作表使用各自的密码进行保护。它似乎工作正常,但我试图访问工作表,他们都说密码不正确 Private Sub Workbook_BeforeClose(Cancel As Boolean) With ThisWorkbook .Worksheets("2073 NSW").Protect Password = "2073" .Worksheets("2091 NSW").Protect Password = "2

我已将此代码放入工作表中,该工作表应确保各个工作表使用各自的密码进行保护。它似乎工作正常,但我试图访问工作表,他们都说密码不正确

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

此工作簿的
行中存在问题。它应该是
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