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

如何使用Google App Script重命名表单响应目标工作表

解决方案

先修正你脚本里的两处问题,再实现响应工作表的自定义命名:

  1. 你定义的问题数组是myQuestions,但循环里误用了未声明的pertanyaanKu;另外getValues()返回的是二维数组,需要取[i][0]才能拿到单个问题文本。
  2. 设置表单响应目标后,要定位到刚创建的响应工作表,再修改它的名称。

修改后的完整代码

function generateForm() { // 修正原函数名拼写错误:genarate → generate
  var ss          = SpreadsheetApp.getActive();             
  var sheet       = ss.getSheetByName('CONSUMEN DATA'); 
  var rowNumber   = (sheet.getDataRange().getNumRows()) - 3; 
  var myQuestions = sheet.getRange(5, 2, rowNumber, 1).getValues(); 
  var form        = FormApp.create('CUSTOMER BILL'); 
  const formTitle = 'BILL REPORT';
  form.setTitle(formTitle)
    .setDescription('Fill with customer bill :')
    .setAllowResponseEdits(true)
    .setAcceptingResponses(true);

  // 修正变量名与二维数组取值逻辑
  for(var i = 0; i < rowNumber; i++){
    var addItem = form.addTextItem();
    addItem.setTitle(myQuestions[i][0]);
  }

  // 设置表单响应目标到当前表格
  form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

  // 重命名响应工作表为"CUSTOMER BILL"
  var allSheets = ss.getSheets();
  // 表单响应表默认是最后新增的工作表,直接取最后一项
  var responseSheet = allSheets[allSheets.length - 1];
  responseSheet.setName('CUSTOMER BILL');
}

关键细节说明

  • 函数名修正:避免拼写错误导致的调用问题;
  • 数组取值:getValues()返回二维结构,必须通过[i][0]提取单行单元格的文本内容;
  • 工作表定位:设置响应目标后,新的响应表会被添加到表格的最后,直接取所有工作表的最后一项即可定位到目标表。

可选:避免同名工作表冲突

如果担心已有同名工作表导致报错,可以提前检查并处理:

var targetSheetName = 'CUSTOMER BILL';
// 检查是否存在同名表,存在则删除(可根据需求改为提示或跳过)
var existingSheet = ss.getSheetByName(targetSheetName);
if(existingSheet) {
  ss.deleteSheet(existingSheet);
}

// 再执行设置响应目标与重命名操作
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
var responseSheet = ss.getSheets()[ss.getSheets().length - 1];
responseSheet.setName(targetSheetName);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:05:30