我试图遍历我的Google工作表中的整个行,并将一些数据从一个工作表复制到另一个工作表.该列表将随着时间的推移而变长.
更具体地说:如果B列中的输入等于“蓝色”,则将A和C列中的值复制到另一张纸上.
对所有列执行此操作,直到该列结尾为止.
链接到我的电子表格:https://docs.google.com/spreadsheets/d/1xnLygpuJnpDfnF6LdR41gN74gWy8mxhVnQJ7i3hv1NA/edit?usp=sharing
>当颜色不等于蓝色时,循环停止.为什么?
>如您所见,我使用了for循环.那是走的路吗?
>我可以对代码执行的速度做任何事情吗?
任何意见,提示或帮助都将受到高度赞赏.
问候!
解决方法:
您将输入工作表命名为“ List”,将输出工作表命名为“ Output”.这是代码.
function condCopy()
{
var s = SpreadsheetApp.getActiveSpreadsheet();
var sht = s.getSheetByName('List')
var drng = sht.getDataRange();
var rng = sht.getRange(2,1, drng.getLastRow()-1,drng.getLastColumn());
var rngA = rng.getValues();//Array of input values
var rngB = [];//Array where values that past the condition will go
var b = 0;//Output iterator
for(var i = 0; i < rngA.length; i++)
{
if(rngA[i][1] == 'blue')
{
rngB[b]=[];//Initial new array
rngB[b].push(rngA[i][0],rngA[i][2]);
b++;
}
}
var shtout = s.getSheetByName('Output');
var outrng = shtout.getRange(2,1,rngB.length,2);//Make the output range the same size as the output array
outrng.setValues(rngB);
}