excel - 为什么这些列没有正确锁定?

标签 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

最佳答案

我将添加一个答案来澄清事情。 Locked 属性仅指示当工作表受到保护时单元格是否可修改。您可以保护工作表,方法是转至 Excel 工具栏中的“审阅”选项卡,然后选择保护工作表。

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

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

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

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

关于excel - 为什么这些列没有正确锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191865/

相关文章:

Java 和 Excel : value being read wrong

excel - 交换字符串中的 2 个字符

excel - VBA:在字符串中的大写字母之后或之前放置一个空格

python - 如何将 Google Sheets 数据写入 Microsoft Excel?

vba - VBA 中作为类成员的类对象数组

sql - VBA 中是否有针对没有结果的 sql 查询的解决方法?

arrays - VBA创建一个包含公式的数组

excel - 一行代码隐藏所有AutoFilter下拉菜单

ms-access - 在 Access 中重新附加 [事件过程]

sql-server - 将数据从 Intouch 导出到 Excel