如何修改Worksheet_Change代码,删除K列内容时清除对应L列时间戳?
修改后的VBA代码
Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range '仅处理K4:K148区域的变更 For Each cell In Intersect(Target, Range("K4:K148")) If cell.Value = "" Then 'K列单元格为空时,清空对应L列单元格 cell.Offset(0, 1).ClearContents Else 'K列有内容时,写入当前时间戳 cell.Offset(0, 1) = Now End If Next cell End Sub
代码说明
- 新增循环处理
Target中的每个单元格,避免多单元格批量修改时出错 - 通过判断
cell.Value = ""区分两种场景:- 当K列单元格被清空时,同步清除对应L列的内容
- 当K列单元格录入或修改内容时,在L列写入当前时间戳
- 保留原代码仅监听K4:K148区域的逻辑,避免无关单元格触发操作
内容的提问来源于stack exchange,提问作者RMaxwell87
相关产品推荐
相关产品推荐

