这些列为什么不能正确锁定?

时间:2018-11-07 14:50:24

标签: excel vba excel-vba

我必须防止在正在创建的工作表中对A:O列进行编辑,但是它似乎无法正常工作。

 Set Wb = Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
        With Wb
        With .Worksheets("Sheet1")
             .Cells.Locked = False
             .Columns("A:O").Locked = True  
        End With

为什么运行宏后那些列可以被编辑?

下面的脚本其余部分(包括保存):

 .SaveAs strNewPath & strFileName, Password:="password", FileFormat:=51
            .Saved = True
            .Close

        End With
        Set Wb = Nothing
    End If
Next

2 个答案:

答案 0 :(得分:1)

我将添加一个答案以澄清问题。 Locked属性仅表示在工作表受保护时是否可以修改单元格。您可以通过以下方式保护工作表:转到Excel工具栏的“查看”选项卡,然后选择“保护工作表”。

或者,您可以在代码中进行保护和取消保护。例如:

Sub Protect_Sheet()
    Sheet1.Protect "Password"
End Sub

Sub Unprotect_Sheet()
    Sheet1.Unprotect "Password"
End Sub

如果要对锁定的工作表执行某些操作,然后保护工作表,则可以在较大的方法中调用这些方法。

答案 1 :(得分:0)

代码开始导入时:

Sheet1.Unprotect "Password" '<- Unprotect the sheet in order to Unlock sheet and give the opportunity to the code to work.

以及代码完成导入后:

Sheet1.Protect "Password" '<- Protect the sheet in order to lock the sheet