编程语言
首页 > 编程语言> > javascript-使用Google Apps脚本遍历整个列

javascript-使用Google Apps脚本遍历整个列

作者:互联网

我试图遍历我的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);
}

标签:javascript,loops,google-sheets,google-apps-script
来源: https://codeday.me/bug/20191009/1882809.html