Google Sheets 应用程序脚本复制并粘贴条件

问题描述 投票:0回答:1

有一个问题一直困扰着我。 我的 Google Sheets 有两列数据,G 和 L。G 中的数据每 5 分钟更改一次,而 L 中的数据不变。 目前的需求是使用app脚本触发器每五分钟检查一次:如果同一行的G列大于L列,则将G列中的数据复制到同一行的L列。 我如何在应用程序脚本中实现这一点?谢谢!

enter image description here

目前我只能每五分钟将整个G列数据复制到L列,但无法比较它们。

function copyGtoL() {
  const x = SpreadsheetApp.getActive();
  const y = x.getSheetByName('data');
  y.getRange('G4:G').copyTo(y.getRange(12, 4), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
}
google-sheets copy-paste appscript
1个回答
0
投票

使用条件语句

我集成了条件语句来比较两列,并使用 for 循环将条件应用于每一行。

修改后的代码:

function copyGtoL() {
  const x = SpreadsheetApp.getActiveSpreadsheet();
  const y = x.getSheetByName('data');

  const columnG = y.getRange(4, 7, y.getLastRow() - 3, 1).getValues(); 
  const columnL = y.getRange(4, 12, y.getLastRow() - 3, 1).getValues(); 
  
  for (let i = 0; i < columnG.length; i++) {
    if (columnG[i][0] > columnL[i][0]) {
      y.getRange(i + 4, 12).setValue(columnG[i][0]);
    }
  }
}

注意: 请使用时间驱动的可安装触发器来满足 5 分钟更新的要求。

结果:

enter image description here

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.