gpt4 book ai didi

excel - 使用VBA取消对单元格的保护

转载 作者:行者123 更新时间:2023-12-03 02:34:02 26 4
gpt4 key购买 nike

因此,我有一个电子表格,我想根据用户输入对其进行格式化,但单元格需要保持锁定状态,直到通过格式确定它们将是用户输入单元格。我的代码仅查找用户界面的单元格,但允许 VBA 编辑它们。

> 'protects all sheets upon opening work book
> Me.Worksheets("Sheet1").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet2").Protect "Password", UserInterfaceOnly:=True
> Me.Worksheets("Sheet3").Protect "Password", UserInterfaceOnly:=True

所以现在我需要允许用户编辑以下单元格

Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("C2", "C8")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("H6")
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("K6")

我尝试在锁定工作表之前和之后允许编辑。我真正想要的是一些 VBA 代码来在应用格式后解锁单元格,而不是提前定义哪些单元格可以编辑。任何帮助我们不胜感激:)

最佳答案

更改范围的Locked 属性。

Range("C2", "C8").Locked = false

这相当于使用格式单元格 |保护|锁定复选框可取消对单元格的保护,并使单元格立即可供编辑。

此外,为了将来的使用,您可能需要考虑在保护步骤中添加一个简单的循环:

Dim sht as Worksheet

For each sht in ThisWorkbook.Sheets
sht.protect password:=Password, Userinterfaceonly:=True
Next sht

这样人们就无法通过添加新工作表来绕过限制,并且如果工作表被重命名等,保护将继续发挥作用。

关于excel - 使用VBA取消对单元格的保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39755017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com