gpt4 book ai didi

vba - 检测到更改时创建日期戳

转载 作者:行者123 更新时间:2023-12-04 14:49:28 26 4
gpt4 key购买 nike

当目标中的多个单元格被修改时,此脚本最终成为运行时错误。

我基本上需要能够一次进行多项更改,并且日期戳仍然有效。

我对这些类型的脚本还是陌生的,我们将不胜感激。

谢谢。

Private Sub Worksheet_Change(ByVal Target As Range)

' Auto Date
Dim cell As Range

'Unprotecting Text Submission tool tab
wstextsubmissiontool.Unprotect "Abc123"

For Each cell In Target
If cell.Column = Range("E:E").Column Then
If cell.Value <> "" Then
Cells(cell.Row, "C").Value = Now
Else
Cells(cell.Row, "C").Value = ""
End If
End If
Next cell

'protecting Text Submission tool tab
wstextsubmissiontool.Protect "Abc123"

End Sub


最佳答案

问题是,通过更改包含时间的单元格,您正在更改工作表,因此 Excel 想要运行您的代码来更改包含时间的单元格...所以基本上错误是为了防止无限循环。

解决方法是在 Worksheet_Change 过程开始时使用 Application.EnableEvents = False 禁用事件。只需确保在过程的 End 重新启用事件(或者如果您出于某种原因提前 Exit 过程)。

一个简化的例子(不包括您的密码保护)是:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("sheet1").Range("a1") = Now()
Application.EnableEvents = True
End Sub

更多信息:

“无限循环” 😜 ( source )

关于vba - 检测到更改时创建日期戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69293357/

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