如何修改VBA代码实现删除H34单元格姓名时清除H37的日期?
问题解决:H34清空时自动清除H37日期的VBA代码修改
原代码可实现在H34单元格输入姓名时,自动在H37单元格填入当前日期+3天的日期,但缺少H34内容被删除时清除H37日期的功能。以下是修改后的完整代码:
'When name entered in H34 date + 3 days is entered in H37; clear date when name is removed Private Sub Worksheet_Change(ByVal Target As Range) 'Auto fills Shipment Required By date in H37 When Name 'entered in H34 under Submitted BY, clear date when name is deleted If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("H34")) Is Nothing Then '关闭事件触发,避免修改H37时再次触发Worksheet_Change Application.EnableEvents = False With Target.Offset(3, 0) 'Target(4,1)等价于Offset(3,0),指向H37 If Target.Value = "" Then .ClearContents 'H34为空时清除H37内容 Else .Value = Date + 3 'H34有内容时填入日期+3天 End If End With '恢复事件触发 Application.EnableEvents = True End If End Sub
修改说明:
- 保留原代码的事件触发逻辑,在同一个
Worksheet_Change事件中补充判断 - 增加
Target.Value = ""的判断,当H34内容被删除时,执行.ClearContents清除H37的日期 - 加入
Application.EnableEvents = False/True,防止修改H37单元格时再次触发Worksheet_Change事件,造成循环执行 - 将
Target(4,1)替换为更直观的Offset(3,0),两者功能完全一致,都是指向H34下方第3行的单元格(即H37)
原尝试代码无效原因:
你之前单独写的代码没有嵌入到Worksheet_Change事件中,无法在单元格内容变化时自动触发执行,因此不会生效。
内容的提问来源于stack exchange,提问作者E T
相关产品推荐
相关产品推荐

