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

Google Script实现发票工作表复制重命名并移至末尾及脚本合并需求

合并脚本实现发票复制、重命名并移至末尾

直接使用以下合并后的脚本,一次性完成所有需求:

function CreateInvoice() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const activeSheet = ss.getActiveSheet();
  
  // 复制当前活动工作表(发票模板)
  const newSheet = ss.duplicateActiveSheet();
  
  // 复制格式与静态值,避免公式联动
  const dataRange = newSheet.getDataRange();
  dataRange.copyTo(dataRange, {formatOnly: true});
  dataRange.copyTo(dataRange, {contentsOnly: true});
  
  // 提取客户名称与发票编号
  const customerName = activeSheet.getRange("B12").getValue();
  const invoiceNumber = activeSheet.getRange("G12").getValue();
  
  // 按规则重命名工作表
  newSheet.setName(`${customerName} ${invoiceNumber}`);
  
  // 将新工作表移至所有表的末尾
  ss.moveSheet(newSheet, ss.getNumSheets());
}

关键步骤说明:

  • 复制工作表:通过duplicateActiveSheet()快速复制当前发票模板,生成新工作表对象。
  • 固化内容:两次调用copyTo,先保留原格式,再将公式转为静态值,确保副本数据独立不联动。
  • 提取命名数据:从原模板的B12(客户名称)和G12(发票编号)获取值,保证命名对应当前要生成的发票。
  • 重命名与移动:按「客户名称+空格+发票编号」规则设置新表名称,再通过moveSheet()将其移至工作表列表末尾。

使用方式:

  1. 删除原来的Dupewithvaluesonly和MovetoEnd函数。
  2. 将上述脚本粘贴到Google Apps Script编辑器中。
  3. 给「创建发票」按钮绑定CreateInvoice函数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:05:40