Я пытаюсь настроить скрипт, который выбирает значения из другого листа и сравнивает их (используя if()
) со значениями, введенными через ui.prompts
в активном листе.
Пользователь должен ввести значения в ui.prompt
, которые должны соответствовать значениям, хранящимся на другом листе, если они совпадают, тогда он запускает другую функцию.
Я написал приведенный ниже код, который, к сожалению, не работает - я думаю, что может быть несколько проблем с тем, как я написал функции if()
и for()
, но я не могу это понять - может кто-нибудь помочь, пожалуйста?
Код следующий:
function firstOpen() {
var sheet = SpreadsheetApp.openById("1HsE2Smq6iSkNxvonEOTOmz54MfzWJduWoNA5P6xaKxk").getSheetByName('Users');
var range = sheet.getDataRange();
var values = range.getDisplayValues();
var lastRow = range.getLastRow();
var sh = SpreadsheetApp.getActive().getSheetByName("BALANCE SHEET");
var getAccNo = ui.prompt('Login', 'Please enter your account number:', ui.ButtonSet.OK);
var getSgEm = ui.prompt('Login', 'And your subscriber email address:', ui.ButtonSet.OK);
var sgCode = ui.prompt('Login', 'Finally, your subscription code:', ui.ButtonSet.OK);
sh.getRange('AI30').setValue(getAccNo);
sh.getRange('AI31').setValue(getSgEm);
sh.getRange('AI32').setValue(sgCode);
var accNo = sh.getRange('AI30').getValue(); // user entered acc no
var sgEmail = sh.getRange('AI31').getValue(); // user entered subscriber email
var subCode = sh.getRange('AI32').getValue(); // user entered subscriber code (as on email)
for (var i = 1; i < lastRow; i++)
{
if (subCode == values[i][3] && accNo == values[i][4] && sgEmail == values[i][5])
{
ui.alert('Success', 'You have entered details correctly', ui.ButtonSet.OK);
sortOutSheets();
}
else
{
ui.alert('Failed', 'The details were incorrect.', ui.ButtonSet.OK);
}
}
}