【问题标题】:Is it possible to let onEdit trigger for fontstylechanges? (line-through)是否可以让 onEdit 触发 fontstylechanges? (直通)
【发布时间】:2013-10-05 16:07:13
【问题描述】:

这里有两个脚本可以根据换行来更改字体颜色,它们都可以正常工作。 - 第一个可以自定义触发, - 其次是 onEdit。

onEdit 有我的偏好,因为它可以立即自动执行操作,但是当单元格的值通过 yes 或 no 时,onEdit 不会看到变化。

那么是否可以让 onEdit 触发 fontstylechanges?

function colorlinethrough() {
    var ss = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet
    var sheet = ss.getSheets()[0]; // Get first Sheet
    var range = sheet.getDataRange(); // Get cells
    var data = range.getValues(); // Get the cell values

    for (var i in data) {
    var editrange = sheet.getRange(parseInt(i)+1,2);
        if (editrange.getFontLine() == "line-through") {
            editrange.setFontColor("#CCCCCC");
        }
        else {
            editrange.setFontColor("#000000");
        }
    }
};

function onEdit(e) {
    var ss = e.source; // Get spreadsheet
    var range = ss.getActiveRange();
    if (range.getFontLine() == "line-through") {
        range.setFontColor("#CCCCCC");
    }
    else {
        range.setFontColor("#000000");
    }
};

也把这个问题放到g+社区https://plus.google.com/104787958270362345970/posts/GTdBoTZR3YF

【问题讨论】:

    标签: google-apps-script triggers google-sheets


    【解决方案1】:

    Spreadsheets 有一个 onChange 事件,它可能会在这里起到作用。 onEdit 是数据更改时,onChange 是电子表格 UI 本身更改时。试一试。

    https://developers.google.com/apps-script/understanding_events

    【讨论】:

    • 一定会的!感谢您的建议,今晚将尝试并报告!
    • 好吧,onChange 确实可以完成这项工作!但是,它仅适用于 colorlinethrough() 函数,而不适用于 onEdit(e) 函数(我更改了名称)。我认为如果 onChange 可以使用 onEdit(e) 函数会更有效,因为它只查看更改的单元格范围..这是因为 onChange 不提供范围对象吗?
    • 顺便说一句,知道有一个用于编辑和创建触发器的 gui 很方便,但我不知道,所以我最初是在搞乱更改函数名称 XD!
    • 很高兴知道。是的,现在该范围在使用 onChange 触发器时不起作用。查看并跟踪此问题 - code.google.com/p/google-apps-script-issues/issues/…
    猜你喜欢
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多