Google apps script 使用来自Google表单的输入更改行颜色的脚本

Google apps script 使用来自Google表单的输入更改行颜色的脚本,google-apps-script,google-sheets,conditional-formatting,Google Apps Script,Google Sheets,Conditional Formatting,基本条件设置格式问题(或者我是这么想的);我们的电子表格充当每日日志,因此,除了最上面一行(冻结的标题)之外,每天都会手动将所有内容移动到存档中。这会使固有的条件格式功能变得不活跃,因为它在数据移动后不再工作 因此,我找到了一个修改过的脚本,直到它完全按照我们需要的方式工作为止,有一个小问题,所有输入都是通过使用谷歌表单收集的,即使手动输入有问题的值时脚本工作,但通过表单输入时它不起作用,我尝试使用触发器,但没有效果 填写并提交表单时,会出现一个单选按钮(如果选中),输入我?在列E上,如果输入了

基本条件设置格式问题(或者我是这么想的);我们的电子表格充当每日日志,因此,除了最上面一行(冻结的标题)之外,每天都会手动将所有内容移动到存档中。这会使固有的条件格式功能变得不活跃,因为它在数据移动后不再工作

因此,我找到了一个修改过的脚本,直到它完全按照我们需要的方式工作为止,有一个小问题,所有输入都是通过使用谷歌表单收集的,即使手动输入有问题的值时脚本工作,但通过表单输入时它不起作用,我尝试使用触发器,但没有效果

填写并提交表单时,会出现一个单选按钮(如果选中),输入我?在列E上,如果输入了该值,则A2:E将更改字体颜色和单元格背景颜色,否则一切照旧。这是当前的脚本:

function OnEdit(e) {
if (e) { 
    var ss = e.source.getActiveSheet();
    var r = e.source.getActiveRange(); 
    if (r.getRow() != 1 && ss.getName() == "Form Responses 0") {

        ME = ss.getRange(r.getRow(), 5).getValue();
        rowRange = ss.getRange(r.getRow(),1,1,5);

        // This changes font and row color
        if (ME == 'ME?') {
            rowRange.setFontColor("#056afa");
            rowRange.setBackground("#fae7bf");

        // DEFAULT
        } else if (ME == ' ') { 
            rowRange.setFontColor("#000000");
            rowRange.setBackground("#ffffff");
        }   
    }
}

非常感谢您的帮助……

由于此触发器必须从事件激活,而不是从用户操作激活,因此您应使用该类型创建一个触发器。首先,我强烈建议将函数名从
OnEdit(e)
(看起来非常类似于保留触发器)更改为一些描述性名称(我使用了
colorUpdater(e)
)。您可以使用菜单
Edit从应用程序脚本编辑器添加可安装触发器,因为此触发器必须从事件激活,而不是从用户操作激活,因此您应使用类型创建一个。首先,我强烈建议将函数名从
OnEdit(e)
(看起来非常类似于保留触发器)更改为一些描述性名称(我使用了
colorUpdater(e)
)。您可以使用菜单“编辑仅适用于用户编辑”,从应用程序脚本编辑器添加可安装触发器。为什么不直接使用?仅适用于用户编辑。为什么不直接使用?谢谢你为我指出了正确的方向Jacques,但更重要的是,谢谢你花时间更详细地解释我的问题背后的原因,你好@Getsemani!如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。谢谢你为我指出了正确的方向雅克,但更重要的是,谢谢你花时间更详细地解释了我的问题背后的原因,你好@Getsemani!如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。