Google apps script Google脚本触发器不会激活部分代码

Google apps script Google脚本触发器不会激活部分代码,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有这个脚本,它工作正常,除了代码的一部分,当触发器执行它时,我应该将光标放在单元格A2上,如果我手动从菜单运行它,所有代码都工作正常 但是“1分钟”触发器没有执行它。我想了解这个错误 function Warehouse() { var s, data, ubcns, i, rw; s=SpreadsheetApp.getActiveSheet(); ubcns=s.getDataRange().getValues(); ubcns.shift(); // los dato

我有这个脚本,它工作正常,除了代码的一部分,当触发器执行它时,我应该将光标放在单元格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();




    }

}

使用计时器运行时,活动工作表可能是电子表格。getSheets()[0];我认为它在没有UI的情况下直接从服务器上运行代码。

我认为您会发现,对于触发器,您的“SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();”可能不一定是您想要的工作表。记住,触发器是“在野外”。它将需要确切地告诉什么样的电子表格和什么样的表格需要访问。尝试使用工作表ID或更好的openByID和getSheetByName方法。

它对我有效。当我从菜单手动运行它时,它有效,但当我设置1分钟计时器时,它无效。你设置了计时器吗?为什么你需要每分钟激活一个特定的单元格?onEdit()触发器将是一种更优化的方法。我尝试了以下方法:函数mypos(){var ss=SpreadsheetApp.getActiveSpreadsheet();var sheet=ss.getSheetByName(“Scan”);var cell=sheet.setActiveSelection(“A2”);//getRange(“A2”);cell.activate();//La siguiente línea no se require//spreadsheetsheetapp.flush();}它可以手动正常工作,但1分钟触发器无法激活它…它可以手动正常执行,但不能与1分钟触发器配合使用
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('A2');
sheet.setCurrentCell(cell);
var selection = sheet.getSelection();
// Current cell: B5
var currentCell = selection.getCurrentCell();
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
}