Получить значение выбранного раскрывающегося списка в электронной таблице в скрипте Google - PullRequest
0 голосов
/ 27 марта 2020

New Sheet Current Sheet

Я много об этом искал, но пока никаких результатов. Мой вопрос довольно прост: каковы возможные способы получения выпадающего (которое я создал с помощью datavalidations) выбранного значения без использования onEdit () или любого триггера в Google Script. Я знаю, что это может быть довольно простой или даже глупый вопрос, но я новичок в листах и ​​скрипте Google. Спасибо за помощь

Редактировать: это изображения моего листа, я хочу получить значение выпадающего из текущего листа, а затем получить счетчик частоты selected element's в новом листе и, следовательно, снова заполните счет в столбце подсчета на текущем листе.

Код:

function onOpen(){
  var ss = SpreadsheetApp;
  var currSheet = ss.getActiveSpreadsheet().getActiveSheet(); 
ScriptApp.newTrigger('myEdit')
.forSpreadsheet(currSheet)
.onEdit()
.create();
}

function myEdit(e){

  var activeCell = e.range;
  var val = activeCell.getValue();

  var wsName = activeCell.getSheet().getName();

  var r = activeCell.getRow();
  var c = activeCell.getColumn();

  if(wsName ==="Math" && r > 1)   
    returnFun(e.value);    
}

function returnFun(selectedDropdown){
  var ss = SpreadsheetApp;
  var currSheet = ss.getActiveSpreadsheet().getActiveSheet();

  var oss = SpreadsheetApp.openById(" Some id");
  var sheet = oss.getSheetByName(" Some Name "); 

// Here I check the selectedDropdown with a column of oss Spreadsheet 
// but the onEdit trigger keeps giving me error that I cant access that file
// this error only occurs when I use onEdit(), else the oss sheet works fine.

}

1 Ответ

1 голос
/ 27 марта 2020

Объяснение

Устанавливаемые триггеры наследуют авторизацию от процесса, который их создал . Триггер onOpen(), который у вас есть, настроен на запуск в текущей электронной таблице , но в то же время он создает устанавливаемый триггер onEdit(). Этот триггер onEdit() позже использует другую электронную таблицу , для которой вы не авторизовали разрешения для.

Поэтому я предлагаю вам создать триггер onEdit(), перейдя в Триггеры текущего проекта -> Добавить триггер и выбрать функцию myEdit для запуска триггера. Я также предлагаю вам пропустить триггер onOpen(), поскольку вы используете его только для создания другого триггера.

Фрагмент

function myEdit(e){
    var activeCell = e.range;
    var val = activeCell.getValue();
    var wsName = activeCell.getSheet().getName();
    var r = activeCell.getRow();
    var c = activeCell.getColumn();
    if (wsName === "Math" && r > 1)
        returnFun(e.value);
}

function returnFun(selectedDropdown){
    var ss = SpreadsheetApp;
    var currSheet = ss.getActiveSpreadsheet().getActiveSheet();
    var oss = SpreadsheetApp.openById(" Some id");
    var sheet = oss.getSheetByName(" Some Name ");

    // Here I check the selectedDropdown with a column of oss Spreadsheet 
    // but the onEdit trigger keeps giving me error that I cant access that file
    // this error only occurs when I use onEdit(), else the oss sheet works fine.
}

Ссылка

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