0

ドキュメント内のシートが変更されたときではなく、特定のシートが編集されたことを投稿するスクリプトのヘルプを探しています。

これが私が現在持っているものです:

function onEdit() {
  var d = new Date();
  var h = d.getHours();
  var min = d.getMinutes();
  var sec = d.getSeconds();
  var h_str = h;
  var min_str = min;
  var sec_str = sec;

// format time nicely
  if (h < 10) 
    h_str = '0' + h;
  if (min < 10) 
    min_str = '0' + min;
  if (sec < 10) 
    sec_str = '0' + sec;

// create the formatted time string
  var time_str = h_str + ':' + min_str + ':' + sec_str;

// create the message
  var s = 'Roster last modified on:     ' + d.toDateString() + ' @ ' + time_str;

// change the range
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Infernal Dawn').getRange("A1").setValue(s);}

これは、シート「Infernal Dawn」を変更日で更新するだけで完全に正常に機能しますが、シートが変更されたときにも更新されます。

これを行うには2つの異なる方法があることがわかりました(1つはgidを使用します)。唯一の問題は、コーディングのスキルが非常に限られており、上記のコードに統合する方法を理解できなかったことです。どんな助けでも大歓迎です!

4

1 に答える 1

0

関数onEditには、どのセル\範囲\シートが編集されたかを記憶するオプションの引数があります。この引数の構造はここで説明されています。

function onEdit(e) 
{ var d=new Date();
  var s=d.toLocaleString();
  if(e.source.getActiveSheet().getName()=="TheSheetThatWeWishToTrace")
  { SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Infernal Dawn').getRange("A1").setValue(s);}
}
于 2012-08-10T11:55:25.550 に答える