每天,我在工作表中添加一行,(使用onEdit()和我时间戳 - 此函数未显示在此处) 问题发生在最后。
请参阅以下内容:
我的目的是将值复制到名为"付款"的另一张纸上,选择一种付款方式:PPAL,CASH或其他。 (本例中为PPAL)
function typesOfPayment() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("John");
var rows = ss.getMaxRows();// *because I add a line per day, on the top*
var columns = ss.getMaxColumns();// *I probably never will add columns...*
var values = ss.getRange(1,1,rows,columns).getValues();
var target = new Array();
for(i=0;i<values.length;i++) {
if (values[i][2]=="PPAL"){ // *if condition is true copy the whole row to target*
target.push(values[i]);// *copy the whole row*
}
}
var sDest=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Payment");
sDest.getRange(1,1,rows,columns).setValues(target);
}
我收到最后一条错误消息:&#34; 0已指定,但等待8&#34;。 var行似乎错了?
我迷路了。怎么办?
感谢您的帮助。 埃里克
答案 0 :(得分:1)
PPAL
列的索引为1。getRange()
使用的setValues()
的行数和列数是target
的大小setValues()
。当这些内容反映到您的脚本时,修改后的脚本如下所示。
function typesOfPayment() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("John");
var rows = ss.getMaxRows();// *because I add a line per day, on the top*
var columns = ss.getMaxColumns();// *I probably never will add columns...*
var values = ss.getRange(1,1,rows,columns).getValues();
var target = new Array();
for(i=0;i<values.length;i++) {
if (values[i][1]=="PPAL"){ // *if condition is true copy the whole row to target*
target.push(values[i]);// *copy the whole row*
}
}
var sDest=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Payment");
sDest.getRange(1,1,target.length,target[0].length).setValues(target);
}
如果我误解了你的问题,我很抱歉。