新手:为google sheets写一个脚本,可以在所有的sheet上运行。

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

我是一个真正的新手(甚至不是)。从来没有写过代码在我的生活中,只是复制了以下代码从一个网站,解释如何做到这一点。我的一个谷歌文档,我需要根据C列连续排序,因为新的数据被添加。这是我得到的代码。

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange(3, 1, sheet.getLastRow() - 2, sheet.getLastColumn());
  range.sort({column: 3, ascending: true});
}

它的工作原理是部分的,但我需要将它应用于文档中的所有sheetstabs。先谢谢你

google-sheets google-sheets-query google-apps-script-editor
1个回答
0
投票
  • 你的代码包括以下一行 var sheet = SpreadsheetApp.getActiveSheet(); 而你其余的代码是基于 sheet - 所以它只在一个工作表上运行,即插入新数据时处于活动状态的工作表,所以在这个工作表上进行编辑。
  • 如果您想对电子表格的所有工作表中的每一个编辑进行排序,您需要使用以下方法 getSheets() 检索电子表格的所有工作表,作为一个 阵列
  • 随后,您需要 通过数组将排序功能应用于每个工作表。

样品。

function onEdit() {
  var sheets = SpreadsheetApp.getActive().getSheets();
  for (var i = 0; i < sheets.length; i++){
    var sheet = sheets[i];
    var range = sheet.getRange(3, 1, sheet.getLastRow() - 2, sheet.getLastColumn());
    range.sort({column: 3, ascending: true});
  }
}

重要:

onEdit 触发器只检测人为的编辑,比如输入文本。如果你想在改变文档结构时触发,比如插入一个新的空行(这与在一个已经存在的空行的单元格中输入值不同),你需要替换掉 onEdit 触发,通过 可安装 onChange 触发器 此处

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