【发布时间】:2021-02-15 15:22:42
【问题描述】:
我有一张表格,只要在其中进行编辑,例如在单元格“A1”中,该单元格的背景颜色就会变为绿色。我正在使用编辑触发器。当我在单元格“A1”中手动输入值时,这有效。
但是如果这个单元格与另一个单元格“B2”相连,并且“B2”单元格中的任何更改都会自动更改单元格“A1”中的值,但是当它发生时,背景颜色不会改变。我认为这是因为我没有手动编辑值。有什么方法可以改变单元格“A1”的背景颜色,因为它的值由于另一个单元格而改变?希望你明白了。我正在使用以下脚本。任何帮助将不胜感激。
function HighlightCell() {
var Sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var cell = Sheet.getActiveCell();
Logger.log(cell);
SpreadsheetApp.flush();
cell.setValue("Highlighted");
SpreadsheetApp.flush();
cell.setBackground("green");
}
【问题讨论】:
-
onEdit触发器仅在用户编辑时激活。公式或脚本不能触发onEdit函数。恐怕你必须重新设计你的逻辑。 -
注明。对于这个问题,您有什么解决方案推荐吗?
-
Carlos 提供了一个解决方法。本质上,您需要找到一种方法将源单元格 (B1) 的手动编辑链接到目标单元格 (A1) 。如果单元格之间没有链接,那么您将无能为力。一个想法是让您的脚本检查 A 列的所有公式并调整其公式与手动编辑的单元格相关的单元格。您可以使用
getFormulas,然后检查是否编辑单元格B1,哪些公式会受到影响,然后调整这些单元格的颜色。存在变通办法,问题是您对这些变通办法的开放程度。
标签: google-apps-script google-sheets google-sheets-formula google-sheets-api