gpt4 book ai didi

vba - 保护非空单元格VBA

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

我添加了 VBA 代码,双击后将时间或日期插入到单元格中。我设法让事情进展顺利。

我正在努力解决的问题是在输入时间/日期后保护和锁定单元格。

当我双击/尝试编辑非空单元格时,我收到运行时错误。调试后,让我困惑的行是 "Target.Formula = Format(Now, "ttttt")"

我也无法抛出错误消息。

我已经很接近了!

如有任何建议,我们将不胜感激!

我的代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


If Not Intersect(Target, Range("C:E")) Is Nothing Then
Cancel = True
Target.Formula = Format(Now, "ttttt")
End If

If Not Intersect(Target, Range("A:A")) Is Nothing Then
Cancel = True
Target.Formula = Format(Now, "dd/mm/yyyy")

End If


End Sub


Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ErrorHandler

Dim xRg As Range
Set xRg = Intersect(Range("A:A,C:E"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = True
Target.Worksheet.Protect Password:="123"

Exit Sub
ErrorHandler:
MsgBox "Cell already filled"

Resume Next


End Sub

最佳答案

Protect your worksheet一旦使用 UserInterfaceOnly:=True 参数,您就不必取消保护/保护来使用 VBA 更改单元格内容。

sub protectOnce()
worksheets("sheet1").unprotect password:="123"
worksheets("sheet1").protect password:="123", UserInterfaceOnly:=True
end sub

关于vba - 保护非空单元格VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48747702/

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