gpt4 book ai didi

vba - 从宏中排除第一行

转载 作者:行者123 更新时间:2023-12-02 15:22:31 25 4
gpt4 key购买 nike

我有一个宏,可以在编辑任何行时将当前时间放入单元格中。我的问题是这个宏也对第 1 行(即标题)执行。所以它最终将列的标题更改为时间。

宏工作正常,但仍然更改了标题。我尝试了以下方法:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

If ActiveCell.Row = 1 Then Exit Sub

Cells(Target.Row, "I").Value = Now
Application.EnableEvents = True

End Sub

最佳答案

编辑后,ActiveCell 可能会更改为其他内容,因此请使用目标范围而不是 ActiveCell。例如,如果我按 {enter} 完成编辑,ActiveCell 现在位于第 2 行而不是第 1 行。

Private Sub Worksheet_Change(ByVal Target As Range) 
Application.EnableEvents = False

With Target
If .Row > 1 Then
Cells(.Row, "I").Value = Now
End If
End With

Application.EnableEvents = True

End Sub

我正在使用 With 语法来显示您正在比较的同一行是您正在编辑的行。如果您愿意,您仍然可以将它们放在单独的行中。

此外,用户 Jeeped 对 Application.EnableEvents = True 行提出了很好的观点。如果行为 1,它就不会运行,因此它们会无限期关闭。最好测试 > 1,并且仅在该条件下运行更新代码。

关于vba - 从宏中排除第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31436190/

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