【发布时间】:2017-10-04 09:56:01
【问题描述】:
我对 Google 脚本编写完全陌生,但我使用了各种帖子来拼凑我需要的东西:当我的 Google 表格中的每个工作表中的每个单元格不为空时,它会为每个单元格添加灰色边框,而当单元格为空。
function onEdit(range) {
var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange();
range.setBorder(true, true, true, true, true, true, "white", SpreadsheetApp.BorderStyle.SOLID);
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] !== "") {
range.getCell(i + 1, j + 1).setBorder(true, true, true, true, true, true, "#dfdfdf", SpreadsheetApp.BorderStyle.SOLID)
}
}
}
}
当我手动更改任何单元格中的数据时,这非常有效;但是,在脚本正在监视的那些单元格上,从另一个工作表中提取数据无法触发触发器/脚本。我怎样才能解决这个问题,以便带有公式(引用其他工作表)的单元格仍然会触发我的脚本?
非常感谢任何帮助。谢谢!
【问题讨论】:
-
这是正常行为。简单触发器仅响应用户操作。你可以阅读它here。此外,您可以在触发器中传递的唯一参数是事件对象。您的函数正在工作,因为您将范围重新定义为数据范围。
-
假设如果我定义了一个自定义范围,比如 A1:C100,并且想要在值根据公式发生变化时应用这种触发器,那么在这种情况下可以做什么?
-
如果我理解正确,您更改了另一张表格上的信息,该表格正在您希望更改边框的表格中的公式中使用?
-
没错。现在你找到我了。
标签: google-apps-script google-sheets