0

私は毎日20人以上編集されているGoogleシートを持っています。時には、「日付列」に日付以外のものを貼り付けたり、日付を間違った形式で貼り付けたりすることもあります。だから私は日付のフォーマットを "yyy-mm-dd"に設定し、日付が正しいかどうかをチェックするデータ検証を設定するスクリプトを作成しようとしています( "2017- -17" )、誤った日付を貼り付けたり書き込んだりすると、最後のポップアップメッセージボックスに表示されます。 私はコードの下に書いた「のonEdit」それを引き起こしたが、私は、このポップアップメッセージの事を処理することができません。もう一つは、私は私の日に不正なデータを持つセルを貼り付けていながら、スクリプトを有効にすると動作しないということである ポップアップアラート付きのGoogleシートのカスタム日付検証

function SetDateFormat() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    var sheet = ss.getSheetByName("Sheet1") 
    var cell = sheet.getRange(4, 3, sheet.getMaxRows()) 
    cell.setNumberFormat('yyyy-mm-dd') 
} 


function setAndCheckDate() { 
    var ss = SpreadsheetApp.getActive() 
    var sheet =ss.getSheetByName("Sheet1") 
    var cell = sheet.getRange(4, 3, sheet.getMaxRows()) 
    var rule1 = cell.getDataValidation() 
     var rule2 =SpreadsheetApp.newDataValidation().requireDate().build() 
     cell.setDataValidation(rule2) 

     if(rule1 !== rule2) { 
     Browser.msgBox("Date is incorrect!") 
     } 
} 

/

カラム。

https://docs.google.com/spreadsheets/d/1ZPbfX60E46W95XhMTXpBSLTUAT71QCe-MFnYhYy2PPw/edit?usp=sharing

あなたは助言することはできますか?

答えて

0

説明した仕様に従って日付をフォーマットするApps ScriptでformatDate(date、timeZone、format)を探しています。

// This formats the date as Greenwich Mean Time in the format 
// year-month-dateThour-minute-second. 
var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'"); 
Logger.log(formattedDate);