Google脚本复制最后一行,来自的所有列

时间:2018-12-14 16:39:55

标签: google-apps-script google-sheets

工作表上的两个标签分别为“主文件”和“工作文件”。

“主”工作表由一个单独的Google工作表的导入范围填充,该工作表由jotform提交填充。 = IMPORTRANGE(“ 1YIxcke-hskw2NyokxtnWoDO_69hz_K-CXfsIq0Z3yNM”,“ Sheet1!A:MO”)

我需要的是,当新提交击中“ Master”时,脚本将运行以选择“列”将新行复制到“ Working”。

我目前有两个脚本。手动复制版本工作正常,但仅适用于活动单元。运行时,onEdit版本不会复制任何内容。我感觉这与importrange使得“最后一行”为空行有关。

这是我的脚本:

function onEdit(){
var ss = SpreadsheetApp.getActive();
var sheet = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Master");
var rowIdx = sheet.getActiveRange().getRowIndex();
var );
Logger.log(rowValues);
var destValues = [];
destValues.push(rowValues[0][0]);// copy data from col A to col A
destValues.push(rowValues[0][1]);// copy data from col B to col B
destValues.push(rowValues[0][2]);// copy data from col C to col C

destValues.push(rowValues[0][5]);// copy data from col F to col D
destValues.push(rowValues[0][6]);// copy data from col G to col E
destValues.push(rowValues[0][7]);// copy data from col H to col F
destValues.push(rowValues[0][8]);// copy data from col I to col G

destValues.push(rowValues[0][21]);// copy data from col V to col H

destValues.push(rowValues[0][23]);// copy data from col X to col I

var dest = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Working");

dest.getRange(dest.getLastRow()+1,1,1,destValues.length) 
.setValues([destValues]);
}

(我必须分解dest.getRange行以使其格式化为代码。)

这是我的工作表的副本,已共享: https://docs.google.com/spreadsheets/d/1FylLCocxDmKYISzjuFeSCSLUgE4kbBtkDPk-zI698JQ/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

我怀疑代码正在尝试写入不存在的行。

替换

dest.getRange(dest.getLastRow()+1,1,1,destValues.length) 
   .setValues([destValues]);

使用

dest.appendRow(destValues)

函数“ appendRow”在Sheet对象上退出。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#appendRow(Object)

它需要一个值数组。

您一直在调用setValues函数的期望值和数组数组。