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

Excel货物进出仓日期冻结与仓储时长追踪方案问询

Excel货物进出仓追踪解决方案

一、自动生成入库日期(选择仓库后触发)

Excel公式无法直接生成静态固定日期,需通过VBA宏实现选择仓库后自动写入当日日期:

  1. 按Alt + F11打开VBA编辑器
  2. 双击目标工作表(如Sheet1)打开代码窗口
  3. 粘贴以下事件代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仓库列改为你的实际列号(例:仓库在D列则写4),入库日期列改为你的目标列(例:M列)
    If Target.Column = 1 And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        If Target.Value <> "" And Cells(Target.Row, "M").Value = "" Then
            Cells(Target.Row, "M").Value = Date
        End If
        Application.EnableEvents = True
    End If
End Sub
  1. 保存文件为.xlsm格式(启用宏的工作簿),后续选择仓库后,对应行的入库日期会自动填充当日日期且不会重复修改

二、冻结出库日期(下拉菜单选“是”时触发)

同样通过VBA实现出库标记为“是”时自动写入固定出库日期:
在同一工作表代码窗口中,补充如下逻辑(可与入库代码整合):

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 入库日期逻辑(同上段代码)
    If Target.Column = 1 And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        If Target.Value <> "" And Cells(Target.Row, "M").Value = "" Then
            Cells(Target.Row, "M").Value = Date
        End If
        Application.EnableEvents = True
    End If

    ' 出库标记列改为你的实际列号(例:N列是14),出库日期列改为目标列(例:O列)
    If Target.Column = 14 And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        If Target.Value = "是" And Cells(Target.Row, "O").Value = "" Then
            Cells(Target.Row, "O").Value = Date
        ' 可选:选“否”时清空出库日期,不需要可删除此段
        ElseIf Target.Value = "否" Then
            Cells(Target.Row, "O").Value = ""
        End If
        Application.EnableEvents = True
    End If
End Sub

三、仓储时长计算(适配出库状态)

基于你的现有公式,调整为适配出库状态的计算逻辑:

=IF(N9="是",DATEDIF(M9,O9,"D"),IF(NOT(ISBLANK(M9)),DATEDIF(M9,TODAY(),"D"),""))
  • 当出库标记为“是”时,计算入库日期到出库日期的总仓储天数
  • 未出库时,计算入库日期到当日的实时仓储天数
  • 入库日期为空时显示空值,避免错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:01:29