Триггер скрипта Google не активирует часть кода - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть этот скрипт, он работает нормально, за исключением той части кода, где я должен поместить курсор в ячейку A2, когда он выполняется триггером. Если я запускаю его из меню вручную, весь код работает нормально.

Но триггер "1 минута" не выполнил его.Я хотел бы понять эту ошибку.

function Warehouse() {
  var s, data, ubcns, i, rw;
  s=SpreadsheetApp.getActiveSheet();
  ubcns=s.getDataRange().getValues();
  ubcns.shift();
  // los datos que hemos de distribuir
  data=ubcns.shift();
  //solamente la primera columna
  ubcns=ubcns.map(function(x) {return x[0];});
  //quita las filas antes de 10
  for (i in [3,4,5,6,7,8,9]) ubcns.shift();
  //fila de la ubicacion
  rw=ubcns.indexOf(data[0])+10;
  //poner datos
  s.getRange(rw, 2, 1, 15).setValues([data.slice(1)]);

var sheet = SpreadsheetApp.getActive().getSheetByName('Scan');

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('A2');
sheet.setCurrentCell(cell);
var selection = sheet.getSelection();
// Current cell: B5
var currentCell = selection.getCurrentCell();

  var rangesToClear = ['A2:C2'];
  for (var i=0; i<rangesToClear.length; i++) { 
    sheet.getRange(rangesToClear[i]).clearContent();




    }

}

Это часть кода, которая не выполняет триггер, она не дает ошибок, она просто не выполняет его.

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('A2');
sheet.setCurrentCell(cell);
var selection = sheet.getSelection();
// Current cell: B5
var currentCell = selection.getCurrentCell();

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Я думаю, вы обнаружите, что для триггера ваш SpreadsheetApp.getActiveSpreadsheet (). GetActiveSheet (); 'может не обязательно быть тем листом, который вы намереваетесь.Помните, триггер «там, в дикой природе».Необходимо будет точно указать, к какой таблице и к какому листу нужно получить доступ.Попробуйте использовать идентификатор листа или лучше, методы openByID и getSheetByName.

0 голосов
/ 21 сентября 2019
function ttttt() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = sheet.getRange('A2');
  sheet.setCurrentCell(cell);
  var selection = sheet.getSelection();
  var currentCell = selection.getCurrentCell();
  Logger.log(currentCell.getA1Notation());
  //A2
}

Когда вы запускаете его без таймера, активным листом может быть Spreadsheet.getSheets () [0];Я думаю, что он запускает код прямо с сервера без пользовательского интерфейса.

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