これが尋ねられてから6年後ですが、ありがたいことに、私は同じ問題を抱えていて、みんなの選択肢を試しました。コメントのように、機能する場合と機能しない場合があります。
したがって、if else ステートメントを作成して、すべてのエントリが空白ではないことを確認してから、コードを実行しました。
function move() {
var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('PROCESS');
var source_range = source.getRange(3, 15, 1, 6).getValues();
var target = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SUBMISSIONS');
var target_range = target.getRange(target.getLastRow() + 1, 2, 1, 6);
var check = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INPUT');
var check_order = check.getRange(7, 15, 1, 1);
var check_firstname = check.getRange(9, 15, 1, 1);
var check_lastname = check.getRange(11, 15, 1, 1);
var check_email = check.getRange(13, 15, 1, 1);
if (check_order.getValue() === '' ) {
Browser.msgBox('Error','Please make sure all fields are filled.', Browser.Buttons.OK);
} else if ( check_firstname.getValue() === '' ) {
Browser.msgBox('Error','Please make sure all fields are filled.', Browser.Buttons.OK);
} else if ( check_lastname.getValue() === '' ) {
Browser.msgBox('Error','Please make sure all fields are filled.', Browser.Buttons.OK);
} else if ( check_email.getValue() === '' ) {
Browser.msgBox('Error','Please make sure all fields are filled.', Browser.Buttons.OK);
} else {
target_range.setValues(source_range);
var datecell = target_range.offset(0, -1, 1, 1);
datecell.setValue(new Date()).setNumberFormat('YY-MM-DD HH:mm:ss');
var clearsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INPUT');
clearsheet.getRange("J3:K4").clearContent();
clearsheet.getRange("B8:B25").clearContent();
clearsheet.getRange("H8:H9").clearContent();
clearsheet.getRange("H11").clearContent();
clearsheet.getRange("O7:P16").clearContent();
}
}
完璧に動作します。.msgBox
さらに良いことに、エラーを参照するように をカスタマイズすることもできます。