2016-05-06 7 views
0

列1が編集されたときにタイムスタンプを挿入するコードがあり、別の列に「collect」という語が入力されたときの2番目のタイムスタンプがあります。これから私は、収集してそのデータを使用するのにかかる時間を考えます。しかし、誰かが列1を再度編集するとタイムスタンプが更新されるので、最初の編集時にのみ行うことができるスクリプトを探しています。ここに私の現在のスクリプトです。最初の編集後に列が編集されたときにタイムスタンプ更新を停止する方法

function onEdit(e) { 
var sheet = SpreadsheetApp.getActiveSheet(); 
if(sheet.getName() == "CC sheet") { 
    //Update timestamp when changed to collected 

    var range = sheet.getActiveCell(); 
    Logger.log(range.getColumn()) 
    if(range.getColumn() == 7.0) { //if we are in the status column... 
    var nextCell = range.offset(0, 2); 
    if(range.getValue() == 'Collected') 
     if(nextCell.getValue() === '') //is empty? 
      nextCell.setValue(new Date()); 
    } 
//end 
} 


if(e.source.getActiveSheet().getName() !== 'CC sheet' || e.range.columnStart !== 1) return; 
e.range.offset(0, 5).setValue(e.value ? new Date() : null); 
} 

私は最初の編集時にのみ更新するように変更する必要があります。これについてのどんな助けも大いに感謝されるでしょう。

答えて

0

この1で、最後の行またはコードを置き換える:

if (e.range.offset(0, 5).getValue() === '') { 

    e.range.offset(0, 5).setValue(e.value ? new Date() : null); 

} 

それは同じ「空である?」ですあなたがスクリプトの最初の部分にあるように、チェックしてください。

+0

これは完璧なおかげです。 –

+0

ありがとうございました。正しい答えにチェックを入れてください。 –

関連する問題