Protect multiple selected sheets?
debug.print is use to print something (text) in the immediate window.
Activewindow.selected sheets doesn't have a value/text that could be printed.
I'd try something like:
Option Explicit
Sub Protect_Switch()
Dim sh As Object
Dim mySelectedSheets As Object
Set mySelectedSheets = ActiveWindow.SelectedSheets
mySelectedSheets.Item(1).Select 'unselect all the sheets but one
For Each sh In mySelectedSheets
If sh.ProtectContents = True Then
sh.Unprotect
Else
sh.Protect DrawingObjects:=True, _
Contents:=True, Scenarios:=False, _
AllowSorting:=True, AllowFiltering:=True
End If
Next sh
mySelectedSheets.Select 'reselect the sheets.
End Sub
Bassman62 wrote:
I have two questions but I think the first answer will solve the second.
First: Why does the following line error out with "Run-time error '450':
Wrong number of arguments or invalid property assignment?
Debug.Print ActiveWindow.SelectedSheets (I thought this line earlier
today?)
Now the 2nd question;
I'm trying to protect / unprotect a group of selected sheets using the
following code but it errors out if more than one worksheet is selected with
"Run-time error '1004': Method 'Protect' (or 'Unprotect') of object
'_Worksheet' failed.
Sub Protect_Switch()
' Alternate WorkSheet Protection ON or OFF
Dim sh As Worksheet
For Each sh In ActiveWindow.SelectedSheets
If sh.ProtectContents = True Then
sh.Unprotect
Else
sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:= _
False, AllowSorting:=True, AllowFiltering:=True
End If
Next sh
End Sub
--
Dave Peterson
|