我正在尝试编写一个谷歌应用程序脚本,以便我可以将主要报告表中的几列(C和D)复制到另一个表格,基于列M的值,如果它等于0 。
如下图所示:
所以我想复制"姓名"和"品种"列进入另一张表格,其中"发芽%"列是0。
它可以是基于时间的触发器,每2小时运行一次,或者也可以运行onEdit。我试图使用OnEdit创建一个脚本,如下所示:
function onEdit( e ){
var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("germination");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("watering");
var data = sheetFrom.getDataRange().getValues();
var target = new Array();// this is a new array to collect data
for(n=0;n<data.length;++n){ // iterate in the array, row by row
if (data[n][12]=="0"){ // if condition is true copy the whole row to target
target.push(data[n]);// copy the whole row
}//if
}//for
//Paste to another sheet from first cell onwards
sheetTo.getRange(1,1,target.length,2).setValues(target);
}
但我在这个&#34;错误的范围宽度上得到错误,是15但应该是2(第25行,文件&#34;代码&#34;)&#34;
第25行是&#34; sheetTo.getRange(1,1,target.length,2)。setValues(target)&#34;
提前致谢。
答案 0 :(得分:1)
在getRange(1,1,target.length,2)
方法中,您指定它只选择2列,将其更改为getRange(1,1,target.length,target[0].length)
以选择列的数组长度。
更新: 要仅写入C和D,请将目标push()更改为:
target.push( [[data[n][2], data[n][3]] )