添加新行并使用自标记公式填充
Posted
技术标签:
【中文标题】添加新行并使用自标记公式填充【英文标题】:Add new row and fill with self labling formula 【发布时间】:2018-04-15 16:18:07 【问题描述】:我正在尝试使用 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】:公式应该以=
开头,自定义函数应该有括号,所以不是
cell.setFormula("getUrl");
以下应该写:
cell.setFormula("=getUrl()");
【讨论】:
感谢您的帮助。 'cell.setFormula()' 没有用 'cell.setValue("=sheetName()");' 使用 setValue() 传递公式不可靠(请参阅setValue to QUERY() formula doesn't work?)您认为 byd“不起作用”是什么?您收到错误消息了吗? 试过 'cell.setFormula()' 这次没有错误 感谢您的提示。 当我在第二个选项卡中尝试此代码时,我收到错误消息“范围的坐标或尺寸无效” @ChrisShortreed:这个问题包括几个功能。你说的是哪一个?错误是否显示在单元格上?以上是关于添加新行并使用自标记公式填充的主要内容,如果未能解决你的问题,请参考以下文章