You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:05:33