我想弄清楚这一点,我必须忽略一些基本的东西。 (我花了很长时间才意识到我没有添加触发器。)
提交表单时,如果该页面的行数不足,则会自动展开。我有一个对帐页面,它逐行提取所提交的数据并分析它是否存在差异(表单会收集计费时间和任务。)
因此,当表单响应1页面将展开时,我想在表单提交上使用触发器向对帐页面添加一行并向下复制公式。我似乎无法添加这条线。看google page扩展行数,我不确定我在做什么也不错,但我认为我需要在计算机上添加更多java功能。
如果我只是将示例复制并粘贴到新工作表中,则大多数代码都是黑色而不是标准编辑器颜色。保存弹出“丢失;在声明之前。(第1行,文件”代码“)” 第一行只是“import com.google.gdata.client.spreadsheet。*;” 如此简单:我可以使用哪些最基本的代码来添加该空白行? 然后首先:我是否需要导入一堆东西来实现(添加行)? 第二:如果是这样,我将表单的所有权转让给某人,他们是否也需要进行进口? 第三:如果是这样,我想在另一台设备上进行编辑,我还需要在那里进行编辑吗? 第四:该示例使用Update()但我似乎无法在javascript或googlesheets api文档中找到Update()函数。
这是我正在尝试的代码和变体注释掉但似乎不起作用:
function onFormSubmit(e) {
Logger.log('form submit triggered')
var sheet = SpreadsheetApp.getActive()
var sss = sheet.getSheetByName('Reconciliation')
var col2 = sss.getRange("B:B");
var col2val = col2.getValues();
var counter = 0;
var sssrange = sss.getDataRange();
// sss.Rows = sss.getLastRow() + 1 //Object does not allow properties to be added or changed if I uncomment - this seems to match the google example line though
Logger.log(sss.getLastRow());//=8
var newsssrange = sssrange.offset(1,0); // didn't actually think this would work (since it also had the .update() part that previously didn't work for me) but came across it and was getting desparate.
// sss.setRowCount(sss.getLastRow() + 1); // TypeError: Cannot find function setRowCount in object Sheet.
Logger.log(sss.getLastRow()); //=8
// sss.Update();//TypeError: Cannot find function Update in object Sheet.
}
答案 0 :(得分:0)
叹息......我仍然想知道如何添加更多行,但我确实回答了我原来需要添加一行,因为表单提交只添加一行。所以我要回答这个问题,因为我做了很多搜索,出于某种原因,这种情况从未出现过,如果他们遇到同样的问题,也许有人会觉得这很有用。
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActive()
var sss = sheet.getSheetByName('Reconciliation')
sss.appendRow(['']);
}
请注意,这会添加一个空白行。如果你第二次运行它,它不会添加第二个空行,因为appendRow()在数据的最后一行之后添加。如果你在那里放一个字符串或者一遍又一遍地运行它就会得到多行。
我真的想知道添加多行虽然也会出现,但我似乎仍然缺少一些东西,可能很明显。
答案 1 :(得分:0)
您是否知道arrayformula woluld自动生成新行?如果您在Sheet2中粘贴此公式:
=OFFSET(Sheet1!A1,,,counta(Sheet1!A:A))
然后在Sheet1范围A:A中粘贴新值,然后在Sheet2上添加新行。