当前位置: 首页 > 知识库问答 >
问题:

在基于公式的单元格中,onEdit脚本不会在Google Sheet上触发

宇文飞翮
2023-03-14

我对谷歌脚本写作完全陌生,但我已经使用了各种帖子来拼凑我需要的东西:当我的谷歌表格中的每一个单元格不是空的时候,给它添加灰色边框,当单元格是空的时候,给它添加白色边框。

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个答案

范哲
2023-03-14

根据评论中的信息。

var范围内更改。getActiveSheet()。getSheetByName(“Sheet1”)其中Sheet1是要设置边框的图纸。

当前,当您编辑工作表时。getActiveSheet()是在进行编辑时获取工作表,而不是在编辑电子表格中的任何工作表时希望此脚本仅在特定工作表上工作,因此。getSheetByName('Sheet1')

编辑

如果编辑或更改是由公式进行的,则不会触发触发器。看这里

 类似资料:
  • 我已经在我的网站上设置了GTM,我有一个在以下条件下触发的触发器 触发器的GTM条件 当我测试标签时,它不会启动。我检查了元素的值为 那么,当我使用regex或contains操作符时,为什么GTM不起作用呢。还有其他人面临过这个问题吗? 此页上几乎没有触发器(https://luminaryproperties.co.uk/venturing-into-your-first-off-plan/?

  • 我是编程新手,所以请耐心听我说。我正在编写一个脚本,除其他外,在编辑时获取单元格值,然后在其他各种范围内的一系列单元格下划线。给定的单元格上有验证,因此用户只能从下拉框的一系列选项中进行选择。 据我所知,验证函数工作正常,但是当我通过选择一个下拉框选项来编辑指定的单元格时,什么都不会发生。我需要调用函数吗?我已经阅读了api的参考资料,并在stackoverflow和网络上搜索了帮助,但是我被卡住

  • 问题内容: 我使用XlsxWriter处理python,但一直在尝试解决此问题,但没有成功: 我的应用程序必须创建一个Xlsx文件,其中的数据以表格形式显示。该表有一些空单元格。 我想为某些单元格设置边框以为表格制作网格,所以我使用: 为了将边框应用于这些单元。然后,我在表上写数据。 由于表的布局非常复杂,因此写入数据将很容易,一旦编写完所有内容,就将格式应用于具有边框的单元格,但我找不到方法。

  • 但这无济于事。有什么想法吗?

  • 我是新来的谷歌工作表脚本和卡住试图做以下事情。我有2列:C包含开始时间码,D包含结束时间码。第三列(F)包含从开始时间码和结束时间码产生的电影提示的长度。由于时间码来自脚本,因此包含结果的单元格不能导出为其他格式。因此,我试图创建第四列,将列F的结果打印为值。我设法写了一个小脚本,可以做到这一点。它看起来像这样: 问题是,当我编辑C或D中的任何时间码时,它不会自动执行。 所以我试了一下: 它没有给

  • 我有这个脚本: HTML中的用法: 由于某些原因,它的工作,如果页面重新加载一半,但不,它没有开火,在它工作之前,所以我不知道发生了什么。我在wordpress网站上使用这个。