簡體   English   中英

如果值是日期,則清除相鄰單元格的單元格值

[英]Clear cell value of adjacent cell if value is a date

我一直在谷歌應用程序腳本中編寫這個腳本一段時間,並認為我幾乎弄明白了。 我可以真的使用另一雙眼睛,因為它還沒有完成。

我正在嘗試做什么:

我正在處理一份涉及暫定和實際日期的表格。 這兩個日期位於相鄰列中。 一旦“實際”日期填入其單元格,我希望刪除“暫定”日期。

這是我到目前為止的腳本:

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

要使此腳本運行,我需要做什么?

如果列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函數的事件對象 有趣的是,它的“價值”屬性在這里沒有用,因為即使用戶輸入日期,它也不是日期對象。 這就是我使用e.range.getValue()代替的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM