gpt4 book ai didi

excel - VBA在工作表的给定范围内保护和取消保护

转载 作者:行者123 更新时间:2023-12-04 20:49:03 25 4
gpt4 key购买 nike

我已应用此宏来保护和取消保护工作表中给定范围的单元格这是我在此宏中面临的问题
当我运行这个宏时,这个宏在给定的单元格 A1 到 D20 范围内受到保护,当我再次运行这个宏以在给定范围内取消保护时,它不是取消保护

Sub lockcells()
Dim Rng
Dim MyCell
Set Rng = Range("A1:D20")
For Each MyCell In Rng
If MyCell.Value = "" Then
Else: ActiveSheet.UnProtect Password:="123"
MyCell.Locked = True
MyCell.FormulaHidden = False
ActiveSheet.Protect Password:="123", UserInterFaceOnly:=True
End If
Next
End Sub

我想用单个宏保护和取消保护

最佳答案

一些小的调整使其“保护/取消保护”。
我假设您只想保护/锁定一个单元格,如果它是 不是 空的。

Option Explicit

Sub lockcells()
Dim Rng As Range
Dim MyCell As Object

Set Rng = Range("A1:D20") 'Set range to lock cells

If ActiveSheet.ProtectContents = True Then 'Check if sheet is protected
ActiveSheet.Unprotect Password:="123" 'Password to unprotect
Else
For Each MyCell In Rng
If MyCell.Value <> "" Then 'If cell is empty, if not empty lock the cell
MyCell.Locked = True 'Lock cell
MyCell.FormulaHidden = False 'Don't hide formulas
End If
Next MyCell
ActiveSheet.Protect Password:="123", UserInterFaceOnly:=True 'Protect Sheet
End If
End Sub

如果您希望除范围之外的所有单元格都是可编辑的,您可以添加以下代码:
'Else
ActiveSheet.Cells.Locked = False
ActiveSheet.Cells.FormulaHidden = False
'For Each MyCell In Rng
这只会使 Range("A1:D20")受密码保护。所有其他单元格都可以自由编辑。

关于excel - VBA在工作表的给定范围内保护和取消保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69325580/

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