Excel 添加运行工作表的安全性\u即使选择了多张工作表,也要取消对循环槽工作表的保护
大家好,我又回来了 简单的问题,让我的代码尽可能thicc。Im运行2个宏,保护和取消保护,该宏通过纸张计数循环,并根据需要保护或取消保护所有纸张;这是一个全方位的潜艇,我从不同的wb在不同的场合打电话,但它还不是每一个防弹 当我手动运行它并选择多张图纸时,我遇到了一个错误(例如,它试图在多张选择上每张图纸运行一个循环,多张选择不是一张图纸,这会造成objet问题) 是否有办法添加非内存/耗时的行以避免此错误Excel 添加运行工作表的安全性\u即使选择了多张工作表,也要取消对循环槽工作表的保护,excel,vba,Excel,Vba,大家好,我又回来了 简单的问题,让我的代码尽可能thicc。Im运行2个宏,保护和取消保护,该宏通过纸张计数循环,并根据需要保护或取消保护所有纸张;这是一个全方位的潜艇,我从不同的wb在不同的场合打电话,但它还不是每一个防弹 当我手动运行它并选择多张图纸时,我遇到了一个错误(例如,它试图在多张选择上每张图纸运行一个循环,多张选择不是一张图纸,这会造成objet问题) 是否有办法添加非内存/耗时的行以避免此错误 Sub UnprotectWorksheets() Dim i As Integer
Sub UnprotectWorksheets()
Dim i As Integer
' Insert line that says "select whatever sheet" so it cancel inital multiselect?
' (I dont want to use select plz halp :( )
For i = 1 To ActiveWorkbook.Worksheets.Count
Worksheets(i).Unprotect
Next i
End Sub
我试图避免使用select;——59分钟前拍普拉提
它不会取消多页选择,我想我必须坚持选择一张工作表——30分钟前的Patates Pilées
这里有一种不使用的方法。选择以选择工作表。看看这个例子。我们在这里所做的是在取消保护之前隐藏和取消隐藏工作表(如果未隐藏)。这也将自动取消选择
Sub UnprotectWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Visible
Case xlSheetVisible
On Error Resume Next
With ws
.Visible = xlSheetHidden
.Visible = xlSheetVisible
.Unprotect
End With
On Error GoTo 0
End Select
Next ws
End Sub
注意:如果工作簿结构受到保护,此方法将失败。添加图片以显示步骤您在何处添加了这些图片。我刷新了页面,但我看不到任何图片…抱歉,我在实际更新之前键入了,因为我认为我足够快,现在有转换我的答案到评论。。。在工作表(i)之前添加一行Application.GoTo Reference:=工作表(i).Range(“A1”)
。现在请取消保护。这种方法的几个问题1。如果在用户无法手动选择单元格的情况下保护工作表,则上述代码将失败。2.如果说第1行是隐藏的(因为我们正在选择A1),那么代码将失败。不起作用,它不会取消多页选择,我猜我必须坚持选择工作表。我知道这会起作用:我试图避免使用select;我等了一会儿,看看是否有人有更好的,但我可能会满足于这一点!
Sub UnprotectWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Visible
Case xlSheetVisible
On Error Resume Next
With ws
.Visible = xlSheetHidden
.Visible = xlSheetVisible
.Unprotect
End With
On Error GoTo 0
End Select
Next ws
End Sub