Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 保护打开的工作簿上的特定工作表_Excel_Vba - Fatal编程技术网

Excel 保护打开的工作簿上的特定工作表

Excel 保护打开的工作簿上的特定工作表,excel,vba,Excel,Vba,我有以下代码来保护工作簿中的所有工作表,除了有一个宏按钮的工作表 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 Sele

我有以下代码来保护工作簿中的所有工作表,除了有一个宏按钮的工作表

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。有人能帮我修改代码吗?

怎么样:

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

如果图纸未命名为“Sheet1”、“Sheet2”…,只需在图纸名称上循环即可。

我设法找到了答案

Private Sub Workbook_Open()
Dim i As Long
For i = 1 To 6
    Sheets(i).Protect password:="1234", userinterfaceonly:=True
Next i
End Sub
我认为上述解决方案的问题在于我没有被设置为变量