繁体   English   中英

Google Script:根据值将行从一张纸复制到另一张纸

[英]Google Script: Copy row from one sheet to another depending on value

如果我没记错的话,虽然我见过类似的问题,但我没有见过这个具体的问题。

所以,我需要阅读特定列中的所有信息(在这种情况下,它将是 AF,无论我是否一直在使用该电子表格来尝试我一直在做的事情),然后检查该列中的单元格是否具有值(或字符串,对不起,Google Script 的新手)“完成”,然后将与该单元格对应的整行复制到辅助工作表,该辅助工作表将存储所有已完成的案例和内容。

我一直试图通过谷歌找到一些东西,但它总是如何复制整个工作表,我认为这没有用,而且我所做的 rn 复制单元格,无论该单元格 + 列上的值是什么

function copyIf() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getSheetByName("Stuff"); 
  var destination = ss.getSheetByName("Terminados");
  var condition = source.getRange('D2:D2000').getValue();
  if (condition == "Terminado") {  
    source.getRange('A2').copyTo(destination.getRange('A2'));
    source.getRange('A3').copyTo(destination.getRange('A3'));
  } 
}

我在想我可能应该实施某种 for 或 while 循环,因为我希望它不断运行,所以每当有人将某个单元格的状态更改为 Terminado 以将该行复制到辅助工作表时。

尝试这个

function copyIf() {
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Stuff");
  var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Terminados");
  if (feuille.getLastRow()==1){
    SpreadsheetApp.getActive().toast('No data!', 'End of script 🗃️')
    return
  }
  var data = feuille.getRange(2,1,feuille.getLastRow()-1,feuille.getLastColumn()).getValues()
  var archiveData = []
  var lignes = []
  var ligne = 1
  var col = 31 // AF
  try {
    data.forEach(function (row) {
      if (row[col]=="Terminado") {
        archiveData.push(row)
        lignes.push(ligne)
      }
    })
    archive.getRange(archive.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData)
    // lignes.reverse().forEach(x => feuille.deleteRow(x));
    SpreadsheetApp.getActive().toast('Rows '+lignes.flat()+' hab been archived !', 'End of script 🗃️')
  } catch (e) {
    SpreadsheetApp.getActive().toast('No data to be archived!', 'End of script 🗃️')
  }
}

如果要在处理后删除行,请在lignes.reverse().forEach(x => feuille.deleteRow(x));之前删除//

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM