Запускайте скрипт только по нажатию на кнопку с открытыми листами - PullRequest
1 голос
/ 31 марта 2020

В настоящее время следующий скрипт запускается с открытием таблицы Google Sheet. Я хочу, чтобы скрипт запускался только одним нажатием кнопки. Как я могу это сделать?

function getStatusCode(url){
   var options = {
     'muteHttpExceptions': true,
     'followRedirects': false
   };
   var url_trimmed = url.trim() || "";
   var response = UrlFetchApp.fetch(url_trimmed, options);
   return response.getResponseCode();
}

1 Ответ

2 голосов
/ 31 марта 2020

Ответ:

Вместо того, чтобы использовать формулу =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);  
}

Назначение кнопке:

Теперь вы можете создать встроенную кнопку, которая будет запускать скрипт всякий раз, когда вы щелкаете по нему.

  1. Go до пункта меню Insert > Drawing и создайте фигуру; подойдет любая форма, это будет действовать как ваша кнопка.
  2. Нажмите Save and Close, чтобы добавить это на свой лист.
  3. Переместите добавленный чертеж туда, куда вы хотите. В правом верхнем углу рисунка вы увидите вертикальное меню многоточия (). Щелкните по этому, а затем нажмите Assign script.
  4. В новом окне введите getStatusCode и нажмите OK.

Теперь, каждый раз, когда вы нажимаете кнопку, скрипт будет работать Поскольку он устанавливает значение ячейки, а не вызывается из формулы, он больше не будет запускаться при открытии листа.

Надеюсь, это полезно для вас!

* Примечание к переводу: WENNFEHLER означает IFERROR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...