不会自动检测到细胞更改

时间:2017-09-09 10:04:18

标签: javascript google-sheets spreadsheet

我使用以下脚本来自动对Google电子表格进行排序:

https://gist.github.com/mikebranski/285b60aa5ec3da8638e5

它就像一个魅力,但是。 。 。

如果'SORT_COLUMN_INDEX'无论如何都是公式的结果,则不会检测到更改,并且电子表格不会(重新)排序。我可以通过编辑公式来触发排序功能(netto不改变任何东西),但我想避免这个动作。

因此,当我在'SORT_COLUMN_INDEX'中键入数字或使用公式生成数字时,排序功能起作用。但是当公式自动完成工作(在列中生成数字)时,它不起作用。

有人对此有所了解吗?

安德烈

1 个答案:

答案 0 :(得分:1)

修改脚本,以便在对公式引用的单元格进行更改时重新排序。如果这些单元格位于ANOTHER_COLUMN_INDEX的列中,则表示替换(第99-101行)

if (editedCell.getColumn() == SORT_COLUMN_INDEX) {
  autoSort(activeSheet);
}

if (editedCell.getColumn() == SORT_COLUMN_INDEX || editedCell.getColumn() == ANOTHER_COLUMN_INDEX) {
  autoSort(activeSheet);
}

或者更好的是,创建一个数组WATCHED_COLUMNS,其中包含要查看的列号,并使用

进行检查
if (WATCHED_COLUMNS.indexOf(editedCell.getColumn() != -1) {
  autoSort(activeSheet);
}