0

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

解释:

  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”设置状态

我的剧本

  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 注销时,如何使用时间驱动触发器执行脚本?

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

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

1 回答 1

1

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

于 2013-06-15T10:22:36.983 回答