onEdit脚本未在基于公式的单元格中的Google表格上触发

时间:2017-10-04 09:56:02

标签: google-apps-script google-sheets

我对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)
            }
        }
    }
}

当我手动更改任何单元格中的数据时,这非常有效;但是,在脚本监视的那些单元格上,从另一个工作表中提取数据无法触发触发器/脚本。我如何解决这个问题,以便公式(引用其他表格)的单元格仍会激活我的脚本?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

根据评论中的信息。

python3 -c "import configparser; c = configparser.ConfigParser(); c.read('setup.cfg'); print(c['options']['install_requires'])" | xargs pip install 中将import configparser c = configparser.ConfigParser() c.read('setup.cfg') print(c['options']['install_requires']) 更改为var range,其中sheet1是您希望设置边框的工作表。

目前,当您编辑工作表时.getActiveSheet()正在获取您正在进行编辑的工作表,而不是您想要在电子表格中编辑任何工作表时希望此脚本仅用于工作的工作表特定的表格.getSheetByName('Sheet1')

修改

如果通过公式进行编辑或更改,则触发器不会触发。见here