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

Google Sheets如何将B列数值仅粘贴到A列空白单元格并转为文本

Google Sheets 车辆位置历史留存解决方案

步骤1:添加执行脚本

打开你要设置的表格,依次点击顶部菜单栏「扩展程序 > Apps Script」,清空编辑器内默认代码,粘贴以下内容:

function copyBtoAIfAIsEmpty() {
  // 获取当前激活的工作表,如果你要指定特定工作表可替换为.getSheetByName("工作表名称")
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();
  // 跳过第一行表头,无表头可将startRow修改为1
  const startRow = 2;
  if (lastRow < startRow) return;

  // 批量读取A、B两列的所有数据,减少接口调用提升运行效率
  const dataRange = sheet.getRange(startRow, 1, lastRow - startRow + 1, 2);
  const values = dataRange.getValues();
  const updatedValues = values.map(row => {
    // A列为空时用B列值填充A列,否则保留A列原有历史值
    if (row[0] === "" || row[0] == null) {
      return [row[1], row[1]];
    }
    return row;
  });

  // 批量写入更新后的数据
  dataRange.setValues(updatedValues);
  // 将A列所有单元格设置为纯文本格式
  sheet.getRange(startRow, 1, lastRow - startRow + 1, 1).setNumberFormat("@");
}

点击编辑器顶部的保存按钮,自定义项目名称后完成保存。首次运行时按照页面提示完成授权即可。

步骤2:配置每小时定时触发规则

  • 点击Apps Script页面左侧菜单栏的「触发器」选项
  • 点击页面右下角的「添加触发器」按钮
  • 选择要运行的函数为copyBtoAIfAIsEmpty,事件源选择「时间驱动」,触发器类型选择「小时计时器」,时间间隔设置为「每1小时」
  • 点击保存即可完成配置

注意事项

  • 如需指定特定工作表运行,可将代码中getActiveSheet()替换为getSheetByName("你的工作表名称")
  • 若目标存储列不是A列、数据源列不是B列,可修改代码中对应的列序号(A列对应1、B列对应2,以此类推)
  • 若无需跳过表头,将代码中startRow的数值修改为1即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:09:00