簡體   English   中英

Google Apps腳本[電子表格日期]

[英]Google Apps Script [Spreadsheet Date]

我有2列“ StartDate”和“ EndDate”

是否可以進行驗證以檢查“ EndDate”不能早於“ StartDate”,反之亦然? 我不知道是否要對電子表格本身或通過腳本進行驗證。

您可以使用電子表格內置的數據驗證功能(菜單數據>驗證)輕松完成此操作。 使用“自定義公式”驗證,只需鍵入=B1>A1 (假設您的2列為第1 2列)。

或使用onEdit觸發器在腳本中執行此onEdit ,這也很容易,但不如上面所述。

- 編輯

如果還必須檢查單元格是否為日期,則可以使用以下公式作為數據驗證:

=AND(DateValue(B1),B1>A1)

使用onEdit觸發器看起來像這樣:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() !== 'Sheet1' ) return; //check if it's the sheet we want to monitor
  var r = s.getActiveRange();
  if( r.getColumn() !== 2 ) return; //check if it's the column we're interested
  var v = r.getValue();
  if( typeof v !== 'object' ) {
    r.setValue('');
    return SpreadsheetApp.getUi().alert('Enter a valid date!');
  }
  var vA = r.offset(0, -1).getValue();
  if( typeof vA === 'object' ) {
    if( vA.getTime() >= v.getTime() ) {
      r.setValue('');
      return SpreadsheetApp.getUi().alert('Enter a date bigger than start date!');
    }
  } //what to do if there is no date in column A?
}

請注意,此代碼不會檢查開始日期是否更改,因此可以在之后將其更改為大於結束日期的值。 但是,如果您使用此代碼解決方案,則應該可以從這里獲取。

您也可以將日期轉換為整數並比較值。 if(int(enddate-startdate <0,做某事,做其他事)

暫無
暫無

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

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