Sorry if i dont get it ... You mind like this ?? :

Private Sub Workbook_Open()
Dim wsh As Worksheet
Dim rng As Range
Set wsh = Me.Worksheets("Sheet1")
On Error Resume Next
wsh.Unprotect Password:="Secret"
wsh.Cells.Locked = False
Set rng = wsh.UsedRange.SpecialCells(xlCellTypeConstants)
If Not rng Is Nothing Then
rng.Locked = True
End If
Set rng = wsh.UsedRange.SpecialCells(xlCellTypeFormulas)
If Not rng Is Nothing Then
rng.Locked = True
End If
wsh.Protect Password:="Secret"
End Sub

Sub LckCells()
Dim sts, sh

sts = Array("sheet2", "sheet3", "sheet4") 'sheet names

For Each sh In sts
With Sheets(sh)
On Error Resume Next
.Unprotect Password:="Secret"
.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
.Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True
.Protect Password:="Secret"
End With
Next sh

End Sub