0

私の仕事は、スプレッドシートのセルデータをチェックし、それが「警告」(たとえば)の場合はメール通知を送信することです。

説明:

  1. スプレッドシートのセルのデータを確認し、「警告」と同等でない場合:

                    - set status for cell "first" 
    
  2. スプレッドシート セルのデータを確認し、それが「WARNING」およびステータス「first」に相当する場合:

                    - send email
    
                    - msgBox - "WARNING first"
    
                    - set status for cell "second"
    
  3. 次回のスクリプト実行時、セル値 = "WARNING"、セルステータス "second":

                     - just msgBox - "WARNING second" 
    
  4. など、値が nonWARNING に変更された場合 - セルのステータスを「最初」に設定します

私のスクリプト

  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);
  }
  }

}

スクリプトを手動で実行するか、トリガー On open または On change イベントを設定した場合にのみ、その動作は正しくなります。

私の質問: Google ドキュメントからログオフするときに、タイムドリブン トリガーを使用してスクリプトを実行するにはどうすればよいですか?

私はそのようなものを使用しようとしますが、正しく動作しません

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 に答える