有一个问题一直困扰着我。 我的 Google Sheets 有两列数据,G 和 L。G 中的数据每 5 分钟更改一次,而 L 中的数据不变。 目前的需求是使用app脚本触发器每五分钟检查一次:如果同一行的G列大于L列,则将G列中的数据复制到同一行的L列。 我如何在应用程序脚本中实现这一点?谢谢!
目前我只能每五分钟将整个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);
}
我集成了条件语句来比较两列,并使用 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 分钟更新的要求。
结果:
参考资料: