如何锁定包含公式但仍允许宏工作的单元格?

时间:2017-04-06 03:18:48

标签: excel vba excel-vba

我有一个工作表,我让我的员工填写,我已经计算了我想锁定的单元格,所以他们无法更改它们。我选择了单元格和选定的属性,并确保"锁定"复选框已选中。当我保护工作表/工作簿时,"导出到csv"宏按钮停止工作。为了使宏能够完成,我将这个VB代码插入到工作簿中:

Private Sub Workbook_Open()

Dim wSheet As Worksheet
For Each wSheet In Worksheets

    wSheet.Protect Password:="password", _
    UserInterFaceOnly:=True

Next wSheet


End Sub

这有效,但有一个意想不到的副作用,即使锁定的公式被锁定,我也可以对其进行编辑。仅包含非公式值的单元格保持锁定状态。什么是允许宏但仍然锁定公式单元格的正确方法?

1 个答案:

答案 0 :(得分:0)

我的解决方案是锁定整个工作簿和工作表,然后在VB按钮中编码,禁用锁定,然后重新启用宏。像这样:

Sub MyMacro()

Sheet1.Unprotect Password:="password"

    'insert code here

    Sheet1.Protect Password:="password"

End Sub

然后我删除了我的Workbook_Open代码。