Googleappscriptの複数条件の書き方
勤め先で営業が使用する記入リストを作成し、「更新日」が自動的に記入されるスクリプトを初めて作成しました。
先日リクエストがあり、「記入日」と「更新日」がそれぞれ自動で入力できるように修正をしたいです。
条件分岐についてif else文(「記入日」に入力があれば「更新日」にnew date()を入力する)を使用するところまではわかったのですが、
うまく機能せず困っています。
やりたいこと
0. 1行毎のリストに新規で入力した際にB列の「初回記入日」に現在時刻が入力される
0. 「初回記入日」に既に入力がある(入力情報の更新)場合はC列の「更新日」に現在時刻が入力される
0. 実行の範囲は20行目以降
具体的なコードを教えていただけますと大変助かりますが、どんなご意見でもいただけますと後学になります。
宜しくお願いいたします。
コード
function insertLastUpdated(e) { var ss = SpreadsheetApp.getActiveSheet(); var currentRow = ss.getActiveCell().getRow(); var currentCell = ss.getActiveCell().getValue(); //記入日の記入 var startRange = ss.getRange('B' + currentRow) //記入日をいれる列を指定。この場合はB列 Logger.log(startRange); //更新された列(=startRange)を記録 var updateRange = ss.getRange('C' + currentRow) //更新日をいれる列を指定。この場合はC列 if(currentRow>19 && startRange === ''){ //「20行以降の列」「記入日が空白の場合」と条件付け //行が更新されたら更新日を入れるセルに更新された現在時刻を入力 //(現在時刻はスプレッドシート側の表示形式で日付に変換しています。) if(currentCell) { startRange.setValue(new Date()); }else{ Logger.log(updateRange); //更新された列(=updateRange)を記録 if(currentCell) { updateRange.setValue(new Date()); } } } }
該当のソースコード
**if(currentRow>19 && startRange === ''){ **
** && startRange === ''**を除くと「記入日」の入力は実行されます。
複数条件の書き方が悪いのでしょうか
Googleappscript(Googleworkspace)
試したこと
**if(currentRow>19 && startRange === ''){ **
**&& startRange === ''の部分を&& startRange. isblank()**と差し替えましたが機能せず
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。