【发布时间】:2018-07-04 22:51:52
【问题描述】:
我正在尝试创建一个脚本来将数据从工作表 1 复制到工作表 2,同时重新排序。我从 Google 表单中获取数据,因此数据会不断更新。
这里有两张图片作为示例。 N°1 是我拥有数据的方式,N°2 是我希望它在工作表 2 中的方式。
这个想法是让脚本在每次出现新行时复制数据。
来自表单的数据。
这就是我想要的样子。
这是我的初始代码:
function copyrange() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Ingreso'); //source sheet
var testrange = sheet.getRange('J:J');
var testvalue = (testrange.getValues());
var csh = ss.getSheetByName('Auxiliar Ingreso'); //destination sheet
var data = [];
var columnasfijas = [];
var cadena = [];
//Condition check in G:G; If true copy the same row to data array
for (i=1; i<testvalue.length;i++) {
data.push.apply(data,sheet.getRange(i+1,1,1,9).getValues());
if ( testvalue[i] == 'Si') {
data = (sheet.getRange(i+1,1,1,9).getValues()).concat (sheet.getRange(i+1,11,1,9).getValues()); // this beaks up into 2 rows Idon't know why
/*cadena = (columnasfijas);
data.push.apply(data, columnasfijas);*/
}
csh.getRange(csh.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
//Copy data array to destination sheet
//csh.getRange(csh.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
在这一行中,我也无法连接不同长度的数据。应该是:(i+1,1,1,6). concat.....(i+1,11,1,3)
data = (sheet.getRange(i+1,1,1,9).getValues()).concat (sheet.getRange(i+1,11,1,9).getValues()); // this beaks up into 2 rows Idon't know why
当我按原样运行它时,我收到一个错误,长度应该是 9 而不是 3。
【问题讨论】:
-
您能提供您当前的脚本吗?它将帮助用户思考您的解决方案。
标签: google-apps-script google-sheets copy-paste