[英]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.