如果单元格的值正确,则逐行复制(使用Google Script)

时间:2017-07-28 10:16:39

标签: google-apps-script google-sheets

我正在尝试创建一个Google脚本,将来自一个Google Sheet的行复制到同一个工作表中,但根据单元格的值复制到不同的列。 这是一个例子:

    A    B   C   D   E   F 

1 |约翰12开了

2 |尼克31关闭了

3 | Sara 12开放

4 | Dany 32关闭

... N |尼克221打开

如果C列中的单元格“关闭”,我需要将A,B,C列复制到D,E,F。如果C列中的单元格是“打开”,请忽略这一点并且不要将A,B,C复制到D,E,FI知道,我可以使用正常功能“if”,但我需要使用google脚本,因为我需要有在列D,E,F纯文本或值(没有公式)。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我删除了全局设置值,并在关闭时仅更新了D,E,F列。它的运行速度会慢一点,但不应该搞乱公式。

function copyIfClosed()
{
  var ss=SpreadsheetApp.getActive();
  var sht=ss.getSheetByName('example');
  var lastRow=sht.getLastRow();
  var rng=sht.getRange(1,1,lastRow,6);
  var rngA=rng.getValues();
  for(var i=0;i<rngA.length;i++)
  {
    if(rngA[i][2]=='closed')
    {
      sht.getRange(i+1,4).setValue(rngA[i][0]);
      sht.getRange(i+1,5).setValue(rngA[i][1]);
      sht.getRange(i+1,6).setValue(rngA[i][2]);
    }
  }
  SpreadsheetApp.flush();
}

希望这有帮助。

这是我的工作表的样子:

enter image description here