Я пытаюсь установить значение для ячейки, но в нем отображается ошибка «Range not found».Как установить значение для диапазона, называемого переменной?
Ниже приводится код:
function setpush(pushes) {
var sheet2 = SreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange(pushes),
pushcell = sheet2.getCell(1,1).setValue("PUSH_SENT");
}
На самом деле, я пытаюсь создать пользовательскую функцию для Google Spreadsheet. Переменная push объявляется в самом начале кода.
Ниже приведен полный код, в случае если ошибка вызвана структурой кода.
// Function that you need to call with valid parameters to check when to notify the user and then if all conditions are met then notify the user
function notify(boolean1, pushes, title, body, url) {
if(boolean1 == "Yes" && pushes != "PUSH_SENT") { //// prevent sending duplicate pushes
sendNotification(pushes, title, body, url);
return "Fired";
} else {
return 'Not Fired';
}
}
/////
// Function that sends notification to an email id
function sendNotification(pushes, title, body, url) {
// Check if edit was made in sendNotificationBoolean, If it was changed then proceed
// Get Range of data that we need to proceed from active sheet
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("basic").getRange('B19'),
// Get email id from range
email = sheet.getCell(1, 1).getValue();
// Run a loop and perform appropriate checks to make sure email id is valid and sendNotification boolean is true/yes
if(email && email.indexOf("@") != -1) {
/* Variable that stores Payload
* email: User email
* type: Type of notification, It can be Note, Link or File. Note suits this.
* body: Body of notification, Any message that you want to send goes here.
* title: Title of notification
*/
var notificationData = {
"email": email,
"type": "link",
"body": body,
"title": title,
"url": url
}
// Important data that has to be sent with every request
// Change access token to change the user from whom notification'll be sent
var options = {
'method': 'post',
'contentType': 'application/json',
'headers': {
'access-token': 'o.13zCbw5nkk9f3VubcJBhZPG2NpCZjTat'
},
'payload': JSON.stringify(notificationData)
};
// Perform a POST request along with options and payload
UrlFetchApp.fetch("https://api.pushbullet.com/v2/pushes", options);
{setpush(pushes)}
}
}
///// Set a value for column N
function setpush(pushes) {
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange(pushes),
pushcell = sheet2.getCell(1,1).setValue("PUSH_SENT");
}
Одним из очевидных элементов является то, что вы устанавливаете переменную «лист» в диапазон в вашей функции sendNotification, а затем пытаетесь получить диапазон из диапазона. Измените строку на 'var sheet = SpreadsheetApp.getActiveSpreadsheet(). GetSheetByName (« basic »);' удалив '.getRange ('B19'), и положив точку с запятой в конец. Если вам нужно использовать данные в ячейке B19., Вы можете добавить следующую строку: 'var cellB19_range = sheet.getRange ('B19');' или 'var cellB19_value = sheet.getRange ('B19'). GetValue() ; '(untested) Затем вы можете использовать' var email = sheet.getCell (1, 1) .getValue(); '(я только добавил var в начало) –
Я не пытаюсь получить значение из какой-либо конкретной ячейки. Вы ошибаетесь в коде, о котором я говорю. Я говорю о функции «setpush (push)», которая находится в конце скрипта. Прокрутите вниз немного. в более крупном коде в потоке. –
Я не пытаюсь получить значение из какой-либо конкретной ячейки. Вы ошибаетесь в коде, о котором я говорю. Я говорю о функции setpush (push), которая находится в конце скрипта. Прокрутите вниз немного. в более крупном коде в потоке. Тем не менее, я также внес изменения в соответствии с вашими комментариями. Благодарю. –