2017-12-15 17 views
0

セルの値が特定の条件と一致したときに自動的に日付値を入力するGoogleシートのスクリプトがあります。このスクリプトは次のとおりです。onEditスクリプトの新規/更新日

function onEdit() { 
    var cell = SpreadsheetApp.getActiveRange(); 
    var col = cell.getColumn(); 
    var row = cell.getRow(); 
    var value = cell.getValue(); 
    var col2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1); 
    if (col == 11 && (value=="Declined" || value=="Accepted" || 
value=="Completed" || value=="Withdrawn")) 
    return col2.setValue(new Date()); 
} 

これは、値が初めて入力されたときに完全に機能します(空白から辞退など)。しかし、それが再び更新されたとき、例えば、DeclinedからWithdrawnへの変更は、最初に値が変更されたときと同じになります。

初めて追加するのではなく、セルの値が変更されるたびに日付が更新されるようにするには、何を追加/変更する必要がありますか?

おかげ アレックスは

答えて

1

スクリプトが正常に動作しているようです。タイムスタンプ付きの列が日付/時刻としてフォーマットされていることを確認してください(同じ日に変更が加えられたときに実際にその差異を確認することができます)。

ここで代替バージョン

function onEdit(e) { 
if (e.range.columnStart == 11 && !!~["Declined", "Accepted", "Completed", "Withdrawn"].indexOf(e.value)) 
    e.range.offset(0, 1).setValue(new Date()) 
} 
です