簡體   English   中英

保護工作表時出現運行時錯誤'1004'

[英]Run-time error '1004' while protecting sheets

運行由控制箱觸發的系統。 該代碼使用以下代碼取消保護程序中幾乎所有表的保護(沒有問題):

Sub UnprotectSheets()

    Dim wks As Worksheet

    For Each wks In Worksheets
        If wks.Name Like "Source Data Table" Or wks.Name Like "Permit Route Dashboard" _
        Or wks.Name Like "Administrative Tasks" Or wks.Name Like "RP Calculation" Then GoTo Nextwks
        wks.Unprotect Password:="Password"
Nextwks:
    Next

End Sub

然后,程序進行分析。 最后,我想使用以下代碼保護相同的工作表

Sub ProtectSheets()

    Dim wks As Worksheet

    For Each wks In Worksheets
        If wks.Name Like "Source Data Table" Or wks.Name Like "Permit Route Dashboard" _
        Or wks.Name Like "Administrative Tasks" Or wks.Name Like "RP Calculation" Then GoTo Nextwks
        wks.Protect Password:="Password"
Nextwks:
    Next

End Sub

但是-我每次都會收到以下錯誤消息:

運行時錯誤'1004'對象_Worksheet的方法'Protect'失敗

任何幫助表示贊賞。 謝謝

問題是您試圖保護已經受保護的工作表。 因此,只需運行以下命令:

Option Explicit

Sub TestMe()

    Dim wks As Worksheet

    For Each wks In Worksheets
        If wks.ProtectContents Then
            Debug.Print wks.Name & " is protected!"
        Else
            Debug.Print wks.Name & " is not protected!"
        End If
    Next wks

End Sub

然后轉到立即窗口( Ctrl + G ),然后查看在此處編寫的報告。 它看起來應該像這樣:

Sheet1 is not protected!
Sheet2 is protected!

通常,除非是為了捕獲錯誤,否則請嘗試避免在VBA(以及每種編程語言)中使用GoTo 人們看到這些會生氣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM