添加新行并填充自标记公式

Add new row and fill with self labling formula

我正在尝试使用 importrange() 对我的所有 Google 表单结果进行分组。我想在 Google 表单响应 sheet 的顶部添加一行 URL, Workbook name, Sheet name, and Date code 以便轻松复制并粘贴到主工作簿中。

我正在努力制作一个易于制作的大师工作簿,它将填充所有学生的成绩,其他教师可以轻松使用和分类数据。

我学习编码还不到一个月,并且将其他人的作品拼凑在一起,但收到错误消息

"ReferenceError: "sheet" is not defined.

我在第二行附加了带有 sheet 标签的 Google 表单结果。 https://docs.google.com/spreadsheets/d/1lW8xkSbrgDm-UG83nCnp_9p3NWvP5bnlaCpENDCgQd4/edit?usp=sharing

我目前有工作 getUrl()sheetName()tabName(),还有一个 onOpen() addRow()。我无法将公式输入到新单元格中。

var ss = SpreadsheetApp.getActive();

function onOpen() {
  var menu = [{name:"Add New 2nd Row", functionName:"addRow"}];
  ss.addMenu("Extra", menu);
}

function addRow() {
  var sh = ss.getActiveSheet(), lRow = 1; 
  var lCol = sh.getLastColumn(), range = sh.getRange(lRow,1,1,lCol);
  sh.insertRowsAfter(lRow, 1);
  var cell = sheet.getRange("A2");
  cell.setFormula("getUrl");
  var cell = sheet.getRange("B2");
  cell.setFormula("sheetName");
  var cell = sheet.getRange("C2");
  cell.setFormula("tabName");
}

function getUrl() {
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SS.getActiveSheet();
  var url = '';
  url += SS.getUrl();
  url += '#gid=';
  url += ss.getSheetId(); 
  return url;
}

function sheetName() {
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SS.getActiveSheet();
  return SpreadsheetApp.getActive().getName();
}

function tabName() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ss = ss.getActiveRange().getSheet();
  return ss.getName();
}

公式应该以 = 开头,自定义函数应该有括号,所以不用

cell.setFormula("getUrl");

应写如下:

cell.setFormula("=getUrl()");