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