Google电子表格时间驱动的活动不起作用

时间:2013-06-15 09:33:44

标签: google-apps-script google-sheets

我的任务是检查电子表格单元格数据,如果它=“警告”(例如)发送邮件通知。

说明:

  1. 检查电子表格单元格中的数据,如果它不等于“警告”:

                    - set status for cell "first" 
    
  2. 检查电子表格单元格中的数据,是否等于“警告”和状态“第一”:

                    - send email
    
                    - msgBox - "WARNING first"
    
                    - set status for cell "second"
    
  3. 当下一次脚本运行且单元格值=“警告”时,单元格状态为“秒”:

                     - just msgBox - "WARNING second" 
    
  4. 等等,如果值更改为nonWARNING - 设置单元格“first”的状态

  5. 我的剧本

      function AlertMe() {
      var status = ScriptProperties.getProperty('AlertStatus')+"";
      var value = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("fdata").getRange( "E2").getCell(1, 1).getValue().toString();
      if (value.match("WARNING" )&&status.match("first")) { 
        ScriptProperties.setProperty('AlertStatus', 'second');
        Browser.msgBox(value+' '+status);
        MailApp.sendEmail("mail@gmail.com, mail2@gmail.com", "Alert from my spreadsheet", "Parameter: " + value);
      }
      else { 
        if (!value.match("WARNING")) 
        ScriptProperties.setProperty('AlertStatus', 'first')
        else { 
        if (status.match("second")) 
        Browser.msgBox(value+' '+status);
      }
      }
    

    }

    只有在我手动运行脚本或设置触发器打开或开启更改事件时,其工作才正确。

    我的问题: 当我从Google Docs注销时,如何使用Time-Driven触发器执行脚本?

    我尝试使用类似的东西,但它的工作正确

    var DATA_SPREADSHEET_ID = "0AprqtrrrraFdGxDdXFlMjM4Z0rFwerrrU9PcFlWMVE"; 
    var value = SpreadsheetApp.openById(DATA_SPREADSHEET_ID).getSheetByName("fdata").getRange( "E2").getCell(1, 1).getValue().toString();
    

1 个答案:

答案 0 :(得分:1)

在时间驱动的触发器下执行函数时,Browser.msgBox()函数不可用。尝试从您的功能中删除它们。