0

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

我正在努力制作一个易于制作的大师作业簿,其中包含所有学生的成绩,其他教师可以轻松使用和排序数据。

我学习编码还不到一个月,并整理了其他人的作品,但收到错误消息

“ReferenceError:未定义“工作表”。

我在第二行附上了带有工作表标签的 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();
}
4

1 回答 1

0

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

cell.setFormula("getUrl");

应写出以下内容:

cell.setFormula("=getUrl()");
于 2017-11-03T18:05:45.830 回答