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

BinLocation新增或更新时自动生成指定格式时间戳的实现方法

可以实现,以下是Google Sheets和Excel两款主流表格工具的具体实现方案:

方案1:Google Sheets(通过 Apps Script 实现)
  • 打开目标表格,点击顶部菜单栏「扩展程序」>「Apps Script」进入脚本编辑器
  • 清空编辑器内的默认代码,粘贴以下代码:
function onEdit(e) {
  // 按需修改为BinLocation列对应的列号,A列为1、B列为2,以此类推
  const BIN_LOCATION_COL = 2;
  // 按需修改为存放时间戳的列对应的列号
  const TIMESTAMP_COL = 3;
  // 跳过表头行,按需调整行数,这里默认第1行是表头
  const HEADER_ROW = 1;

  const activeSheet = e.source.getActiveSheet();
  const editedRange = e.range;

  // 仅处理BinLocation列、非表头行的编辑操作
  if (editedRange.getColumn() !== BIN_LOCATION_COL || editedRange.getRow() === HEADER_ROW) return;

  const timestampCell = activeSheet.getRange(editedRange.getRow(), TIMESTAMP_COL);
  // 写入当前时间并设置要求的格式
  timestampCell.setValue(new Date()).setNumberFormat("MM/DD/YYYY HH:MM:SS");
}
  • 点击保存按钮,给项目命名后关闭脚本编辑器,刷新表格即可生效。

注意:该触发器对所有拥有表格编辑权限的用户操作生效,支持批量修改多行BinLocation内容时批量生成时间戳。

方案2:Excel(通过 VBA 实现)
  • 打开目标Excel文件,按Alt + F11调出VBA编辑器
  • 在左侧工程资源管理器窗口,双击你要设置功能的工作表,打开对应代码编辑窗口
  • 粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 按需修改为BinLocation对应的列范围,比如B列就填"B:B"
    Const BIN_LOCATION_COL As String = "B:B"
    ' 按需修改为存放时间戳的列号,A列为1、B列为2,以此类推
    Const TIMESTAMP_COL As Integer = 3
    ' 跳过表头行,按需调整行数,这里默认第1行是表头
    Const HEADER_ROW As Integer = 1

    If Not Intersect(Target, Me.Range(BIN_LOCATION_COL)) Is Nothing Then
        If Target.Row = HEADER_ROW Then Exit Sub
        ' 避免写入时间戳时再次触发事件造成循环
        Application.EnableEvents = False
        With Me.Cells(Target.Row, TIMESTAMP_COL)
            .Value = Now()
            .NumberFormat = "MM/DD/YYYY HH:MM:SS"
        End With
        Application.EnableEvents = True
    End If
End Sub
  • 保存文件时选择「Excel 启用宏的工作簿(*.xlsm)」格式,重新打开文件后启用宏即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:54:04