Сценарии привязаны к листу, мне нужно, чтобы один из них всегда выполнялся как я, владелец - PullRequest
1 голос
/ 21 июня 2019

У меня есть скрипт с дюжиной функций, которые мы используем для различных задач в нашей работе. Он всегда работал отлично, я никогда не развертывал его как веб-приложение или API (и я также никогда не мог понять, что это такое и как их использовать). Теперь я добавил некоторую защиту к рассматриваемому листу. Одна конкретная функция добавляет значения в защищенный диапазон. После того, как защита вступила в силу, мои сотрудники не могут выполнять соответствующую функцию, поскольку у них нет явного разрешения на изменение этих защищенных диапазонов вручную. (изменение их через скрипт разрешено).

Так что мой вопрос, как своего рода новичок в отношении ГАЗА, как мне заставить эту конкретную функцию каждый раз выполнять меня?

П.С .: Я провел много исследований по этому вопросу, но, честно говоря, не мог этого понять. Я знаю, что мне нужно что-то под названием doGet или doPost, но я не знаю, что это такое, как их использовать или что они делают. Поиск их только запутал меня ...

Буду признателен за любую помощь или руководство. Я думал, что это не будет большой проблемой, но я занимался этим последние 3 часа, и это сводило меня с ума.

Вот как выглядит функция: (столбец C - защищенный диапазон, вы можете видеть, что какой-то код в какой-то момент пересекает его)

function jun() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('E2:AG2').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Expenses 2019'), true);
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
  sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).createFilter();
  spreadsheet.getRange('B1').activate();
  var criteria = SpreadsheetApp.newFilterCriteria()
  .setHiddenValues(['1', '2', '3', '4', '6', '7', '8', '9', '10', '11', '12', ''])
  .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(2, criteria);
  spreadsheet.getRange('A1').activate();
  criteria = SpreadsheetApp.newFilterCriteria()
  .setHiddenValues(['Total'])
  .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
  spreadsheet.getRange('245:245').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('\'EXPENSERIZER\'!E2:AG2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getActiveSheet().getFilter().remove();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('EXPENSERIZER'), true);
  spreadsheet.getRange('C11').activate();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...