Ответ:
Вместо того, чтобы использовать формулу =IFERROR
*, вы можете заставить функцию устанавливать значение для вашей ячейки, а не возвращать.
Код:
Обязательно измените диапазон ячеек, содержащих ваши URL, и диапазон ячеек, в которых есть =IFERROR()
. В этом примере сценария они находятся в столбцах G
и * 1014. * соответственно.
function getStatusCode(){
var options = {
'muteHttpExceptions': true,
'followRedirects': false
};
// this is the range of cells containing your WENNFEHLER foruma
var range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("H1:H100");
// this is the range of urls
var range2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("G1:G100");
var newValues = [];
for (var i = 0; i < range.getValues().length; i++) {
var url_trimmed = range2.getValues()[i][0].trim() || "";
try {
var response = UrlFetchApp.fetch(url_trimmed, options);
newValues.push([response.getResponseCode()]);
}
catch(e) {
newValues.push(["Not found"]);
}
}
range.setValues(newValues);
}
Назначение кнопке:
Теперь вы можете создать встроенную кнопку, которая будет запускать скрипт всякий раз, когда вы щелкаете по нему.
- Go до пункта меню
Insert > Drawing
и создайте фигуру; подойдет любая форма, это будет действовать как ваша кнопка. - Нажмите
Save and Close
, чтобы добавить это на свой лист. - Переместите добавленный чертеж туда, куда вы хотите. В правом верхнем углу рисунка вы увидите вертикальное меню многоточия (
⋮
). Щелкните по этому, а затем нажмите Assign script
. - В новом окне введите
getStatusCode
и нажмите OK
.
Теперь, каждый раз, когда вы нажимаете кнопку, скрипт будет работать Поскольку он устанавливает значение ячейки, а не вызывается из формулы, он больше не будет запускаться при открытии листа.
Надеюсь, это полезно для вас!
* Примечание к переводу: WENNFEHLER
означает IFERROR