【问题标题】:Row coloring in Google Apps Script onEdit and onOpen?Google Apps脚本onEdit和onOpen中的行着色?
【发布时间】:2013-04-02 13:37:26
【问题描述】:

我创建了一个将数据提交到 Google 电子表格的 Google 表单。我正在尝试根据特定列中的值对行进行颜色编码 - 没问题。但是,我正在使用 onEdit 函数,当用户提交表单时,行不会改变颜色。只有当我编辑特定单元格时,行才会改变颜色,因此 onEdit 函数。确实,Google 似乎不会将表单提交视为电子表格中的“编辑”,即使它在技术上是一种编辑。我试图复制并粘贴该函数并将其重命名为 onOpen,但这也不起作用。我在这里想念什么?我已经在下面发布了代码,我非常感谢您能负担得起的任何帮助。另外,我是脚本新手,所以请放轻松;)

// Color code rows based on the status of the ticket
function onEdit(e) {
 if (e) { 
    var ss = e.source.getActiveSheet();
    var r = e.source.getActiveRange(); 

    // If you want to be specific
    // do not work in first row
    // do not work in other sheets except "Sheet1"
    if (r.getRow() != 1 && ss.getName() == "Sheet1") {

        // E.g. status column is 6th (F)
        status = ss.getRange(r.getRow(), 6).getValue();

        // Specify the range with which You want to highlight
        // with some reading of API you can easily modify the range selection properties
        // (e.g. to automatically select all columns)
        rowRange = ss.getRange(r.getRow(),1,1,6);

        // This changes row color
        if (status == 'New') {
            rowRange.setBackgroundColor("#f26c4f");
        } else if (status == 'In Progress') {
            rowRange.setBackgroundColor("#fff568");
        } else if (status == 'Ordered') {
            rowRange.setBackgroundColor("#68baff");
        } else if (status == 'Completed') {
            rowRange.setBackgroundColor("#a2e7a5");  
        // DEFAULT
        } else if (status == '') { 
            rowRange.setBackgroundColor("#FFFFFF");
        }   
    }
 }
} 

【问题讨论】:

标签: forms google-apps-script row spreadsheet


【解决方案1】:

“Google 似乎并未将表单提交视为电子表格中的“编辑”,尽管从技术上讲,它是一种编辑”

这就是为什么有一个On form submit 功能,请参阅documentation here,可从脚本编辑器资源中获得 > 当前脚本触发器

【讨论】:

  • 嗨,Serge,感谢您的快速回复!我查看了您发布的链接,并在发布我的问题之前阅读了它,但它对我想做的事情并没有太大帮助。我还尝试重命名该函数并为其设置多个触发器,即 onOpen、onSubmit、onEdit,但它不起作用。无论发生什么事件,当某个单元格处于某种条件下时,我都希望行改变颜色。如果单元格显示“新建”,它应该是红色的,无论是我更改它还是表单提交,都会自动将其标记为“新建”。我怎样才能做到这一点?再次感谢您的帮助!!!
  • 我今天无法让“提交表单”工作。这很有趣——我经常使用它。我还注意到“旧版表单”功能已经消失。现在是 4 月 2 日,所以这不是开玩笑。我的猜测是,由于新表单实际上并未“提交”到电子表格,因此触发器已损坏。
  • 那么,您认为这是在 Google 方面吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多