2017-01-13 87 views
0

我有以下代码以保护我的工作簿中的所有工作表,除此之外我有一个宏按钮。保护打开的工作簿上的特定工作表

Private Sub Workbook_open() 

Dim ws As Worksheet 

For Each ws In ThisWorkbook.Worksheets 
    Select Case ws.Name 
     Case "Rota" 
     Case Else: ws.Protect password:="1234", userinterfaceonly:=True 
    End Select 
Next ws 

End Sub 

问题是,宏创建新工作表,我不想在工作簿打开时受到保护。我只需要保护工作表1到6.任何人都可以帮我修改代码吗?

回答

1

如何:

Private Sub Workbook_Open() 
    For i = 1 To 6 
     Sheets("Sheet" & i).Protect Password:="1234", userinterfaceonly:=True 
    Next i 
End Sub 

,如果纸张未命名为 “工作表Sheet1”, “Sheet2中”,......,在工作表名称只是循环。

0

我设法找到答案。

Private Sub Workbook_Open() 
Dim i As Long 
For i = 1 To 6 
    Sheets(i).Protect password:="1234", userinterfaceonly:=True 
Next i 
End Sub 

我认为上述解决方案的问题是我没有被设置为变量。

相关问题