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

购物清单Excel需求:G列输入日期时,如何让H列自动显示=char(10004)?

嘿,这个需求完全能实现!我给你两种实用方案,你可以根据自己的使用习惯来选:

方案1:用Excel公式(无需启用宏,上手简单)

如果你不想折腾宏,直接用公式就能搞定。在H列的第一个单元格(比如H1)里输入下面的公式,然后下拉填充到H1到H1006就行:
=IF(ISNUMBER(G1), CHAR(10004), "")

小说明:

  • Excel里的日期本质是数字,所以ISNUMBER(G1)能判断G1是不是有效的日期(包括手动输入的日期、公式生成的日期)。
  • 如果你的Excel是365/2021及以后版本,也可以用更精准的ISDATE函数:=IF(ISDATE(G1), CHAR(10004), ""),这个函数会严格判断单元格内容是否为日期格式,避免把普通数字误判成日期。
方案2:用VBA宏(直接插入对勾值,而非公式)

要是你希望H列显示的是直接的对勾符号(不是公式),那用VBA宏会更合适,操作步骤如下:

  1. 右键点击当前工作表的标签(比如Sheet1),选择「查看代码」,打开VBA编辑器。
  2. 在弹出的代码窗口里,粘贴下面这段代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 只监控G列的单元格变化
    If Not Intersect(Target, Me.Range("G:G")) Is Nothing Then
        ' 处理批量粘贴的情况,遍历每个被修改的单元格
        Dim cell As Range
        For Each cell In Intersect(Target, Me.Range("G:G"))
            ' 判断单元格内容是否为日期
            If IsDate(cell.Value) Then
                ' 在对应行的H列插入对勾
                Me.Range("H" & cell.Row).Value = Chr(10004)
            Else
                ' 如果G列清空或输入的不是日期,H列也清空
                Me.Range("H" & cell.Row).Value = ""
            End If
        Next cell
    End If
End Sub
  1. 关闭VBA编辑器,保存文件的时候要选择「Excel启用宏的工作簿(*.xlsm)」格式,不然宏会失效哦。

通用逻辑拓展

你提到的“当某单元格输入日期时,为另一单元格添加指定值”这个需求,核心逻辑其实很简单:

  • 用公式的话:=IF(日期判断条件, 要添加的指定值, 空值/默认值)
  • 用VBA的话:通过工作表的Change事件监控目标单元格,判断是否为日期后,给对应单元格赋值。

内容的提问来源于stack exchange,提问作者Des Watson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:27:41