Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script AppsScript函数导致错误“;范围的坐标在图纸尺寸之外;_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script AppsScript函数导致错误“;范围的坐标在图纸尺寸之外;

Google apps script AppsScript函数导致错误“;范围的坐标在图纸尺寸之外;,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我必须在一张纸上垂直和水平循环,并将某些值复制到另一张纸上。问题是,由于错误“范围的坐标超出了图纸的尺寸”,它无法工作。它将显示在带有getLastRow()或getLastColumn()方法的行上。尝试使用getLastRow()-1(其他帖子中的响应)进行修复,但不起作用 此外,没有用“”或类似的公式填充单元格,只有简单的文本 守则: function Ordenar_XT() { var leidas = SpreadsheetApp.getActiveSpreadsheet().

我必须在一张纸上垂直和水平循环,并将某些值复制到另一张纸上。问题是,由于错误“范围的坐标超出了图纸的尺寸”,它无法工作。它将显示在带有getLastRow()或getLastColumn()方法的行上。尝试使用getLastRow()-1(其他帖子中的响应)进行修复,但不起作用

此外,没有用“”或类似的公式填充单元格,只有简单的文本

守则:

function Ordenar_XT() {

  var leidas = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Base de datos REPXT");
  var relevado= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Base de datos REPXT").getRange("A:A").getValues();
  var idTurma= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Base de datos REPXT").getRange("B:B").getValues();
  var baseTrainers= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("BASEXT");
  var baseContenido = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("BASECONTENIDO");


  var XT = leidas.getRange(1, 1, leidas.getLastRow() - 1, leidas.getLastColumn()).getValues();

  for(var i=1;i<leidas.getLastRow()+1;i++){

    if(relevado[i]!="Relevado"){

      for(var j=0;j < leidas.getLastColumn()-1;j++){

        if(XT[i][j]=="Estou deixando feedback sobre:" || XT[i][j]=="Estoy dejando feedback sobre:"){

          var last= baseTrainers.getLastRow()+1; 

          baseTrainers.getRange(last, 2).setValue(XT[i][j+1]);
          baseTrainers.getRange(last, 1).setValue(idTurma[i]);

          var formula = baseTrainers.getRange(1,8);

          formula.copyTo(baseTrainers.getRange(last, 8));


          var ok=true;
          var l = 2;
          while(ok && l <=10){

            switch(XT[i][j+l]){

              case "¿Qué tan satisfecho estás con tu XT?": 
              case "Quão satisfeito você ficou com seu XT?": baseTrainers.getRange(last, 3).setValue(XT[i][j+l+1]);
                break;

              case "¿El XT tiene dominio del tema?": 
              case "O XT tinha domínio do tema?": baseTrainers.getRange(last, 4).setValue(XT[i][j+l+1]);
                break;

              case "¿El XT explicó y comunicó los temas correctamente?": 
              case "O XT explicou bem os assuntos?": baseTrainers.getRange(last, 5).setValue(XT[i][j+l+1]);
                break;
              case "¿El XT fue abierto para evacuar dudas?": case "O XT foi aberto para tirar dúvidas?": baseTrainers.getRange(last, 6).setValue(XT[i][j+l+1]);
                break;
              case "¿La cantidad de práctica aplicada por el XT fue suficiente para aprender los procesos?" :
              case"A quantidade de prática aplicada pelo XT foi suficiente para aprender sobre os processos?": baseTrainers.getRange(last, 7).setValue(XT[i][j+l+1]);
                break;
              default: ok=false;
                break; 
            }                 
            l +=2;       
          }       
        }
      }     
    } 
  }  
}




函数Ordenar\u XT(){ var leidas=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Base de datos REPXT”); var relevado=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Base de datos REPXT”).getRange(“A:A”).getValues(); var idTurma=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Base de datos REPXT”).getRange(“B:B”).getValues(); var baseTrainers=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“BASEXT”); var baseContenido=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“baseContenido”); var XT=leidas.getRange(1,1,leidas.getLastRow()-1,leidas.getLastColumn()).getValues();
对于(var i=1;i您的循环从1开始
var i=1;我非常感谢@Cooper。这解决了行的问题,您将如何解决getLastColumn问题?在获取工作表上的最后一行时也会发生错误我也想复制数据,我必须知道最后一行+1,因为这是数据所在的行。)g被复制。您不应该使用列在数据数组中递增。如果您在2d中循环,比如说数据,行循环是
for(var i=0;它工作了!谢谢!我现在无法解决的问题是获取要将数据复制到的工作表的最后一个可用行:var last=baseTrainers.getLastRow()+1、 有什么想法吗?更新了帖子!将这个
var XT=leidas.getRange(1,1,leidas.getLastRow()-1,leidas.getLastColumn()).getValues()更改为
var XT=leidas.getRange(1,1,leidas.getLastRow(),leidas.getLastColumn()).getValues()
或者更简单地说
var XT=leadas.getDataRange().getValues().getValues()

var XT = leidas.getRange(1, 1, leidas.getLastRow() - 1, leidas.getLastColumn()).getValues();

  for(var i=0;i<XT.length;i++){

    if(relevado[i]!="Relevado"){

      for(var j=0;j < XT[i].length;j++){

        if(XT[i][j]=="Estou deixando feedback sobre:" || XT[i][j]=="Estoy dejando feedback sobre:"){

          var last= baseTrainers.getRange(); 

          baseTrainers.getRange(last, 2).setValue(XT[i][j+1]);
          baseTrainers.getRange(last, 1).setValue(idTurma[i]);

          var formula = baseTrainers.getRange(1,8);

          formula.copyTo(baseTrainers.getRange(last, 8));

var relevado= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Base de datos REPXT").getRange("A:A").getValues();
var idTurma= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Base de datos REPXT").getRange("B:B").getValues();
for(var i=0;i<relevado.length;i++)