2016-04-11 21 views
1

Google Apps Scriptでこのスクリプトを少しずつ使っています。私は実際にもう一組の目を使うことができました。まだ完了していないので。私は仮と実際の日付を扱うシートに取り組んでいます値が日付の場合、隣接するセルのセル値をクリアします

:私は何をしようとしている

。これらの2つの日付は隣接する列にあります。 「実際の」日付がセルに入力されると、「暫定」日付を削除したいと思います。ここで

は、これまでの私のスクリプトです:

function onEdit() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var range = sheet.getRange('F4:F'); 
    var range2 = sheet.getRange('E4:E'); 
    var rule = range.getDataValidation(); 
    if (rule != null) { 
    var criteria = rule.getCriteriaType(); 
    var args = rule.getCriteriaValues(); 
    var clear = range2.clear({validationsOnly: false}); 
    } 
} 

私はこのスクリプトを実行している得るために行うために何が必要ですか?

答えて

0

F列に値が入力された場合は、E列の値を削除したように見えます。もしそうなら、私はデータ検証ルールを扱う必要性を見ません。次のスクリプトは、編集されたセルが列F、行> = 4にあり、セルの新しい値が日付であることを確認します。これらの状態が保持されている場合は、セルを左にクリアします(offsetを使用)。

function onEdit(e) { 
    if (e.range.getColumn() == 6 && e.range.getRow() >= 4) { 
    if (e.range.getValue() instanceof Date) { 
     e.range.offset(0, -1).clear(); 
    } 
    } 
} 

注:このスクリプトは、のonEdit関数に渡さevent object使用しています。興味深いことに、その "値"プロパティはここでは役に立たないことが判明しました。これは、ユーザーが日付を入力しても日付オブジェクトではないためです。これは私が代わりにe.range.getValue()を使用しているものです。

関連する問題