添加新行并填充自己的公式

时间:2017-11-03 01:40:52

标签: google-apps-script import google-sheets callable newrow

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

我正在努力制作一个易于制作的主人工作簿,这些工作簿将填充所有学生的成绩,这对其他教师来说很容易使用和排序数据。

我已经学习了不到一个月的编码,并将其他作品中的部分拼凑起来,但收到了错误信息

  

“ReferenceError:”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();
}

1 个答案:

答案 0 :(得分:0)

公式应该以{{1​​}}开头,自定义函数应该有括号,因此不是

=

应写下以下内容:

cell.setFormula("getUrl");