Я пишу скрипт Google для формы заказа, который у нас есть. Первая часть скрипта - это функция onOpen, которая сравнивает два значения. если значения одинаковы, это добавляет 1 к значению ячейки в листах. Если значения отличаются, он устанавливает значение этой ячейки обратно на 001. Когда я запускаю этот скрипт, нажимая кнопку воспроизведения, он работает нормально, но когда я фактически использую его, открывая документ, он добавляет два к ячейке вместо одного. Когда сравнительные ячейки отличаются, это действует как ожидалось и изменяет значение на 001. Я не уверен, что происходит. Ниже приведен фрагмент кода
function onOpen(e) {
var dt = new Date(); // todays date
var mnth = dt.toLocaleString('default', { month: 'long' }); //current month in written out
var yr= dt.getFullYear(); // year in four number format
//creates day in 2 number format
if (dt.getDate()<=9) {
var dy ="0"+dt.getDate();
}
else {
var dy = dt.getDate()
}
//creates month in two number format
if (dt.getMonth()<=9) {
var realMnth = dt.getMonth()+1
var NumMnth="0"+realMnth
}
else {
var NumMnth = dt.getMonth+1
}
//checking to see if what PO for the day this is
var dateCount = NumMnth+dy+yr
SpreadsheetApp.getActiveSheet().getRange('G1').setValue(dateCount)
var oldDt = SpreadsheetApp.getActiveSheet().getRange('D1').getValue()
var newDt = SpreadsheetApp.getActiveSheet().getRange('G1').getValue()
if (oldDt == newDt){
var PO = SpreadsheetApp.getActiveSheet().getRange('D2').getValue()+1
}
else {
var PO = 001
}
SpreadsheetApp.getActiveSheet().getRange('D2').setValue(PO)