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
Loops 谷歌循环脚本_Loops_Google Apps Script_Google Sheets_Closures - Fatal编程技术网

Loops 谷歌循环脚本

Loops 谷歌循环脚本,loops,google-apps-script,google-sheets,closures,Loops,Google Apps Script,Google Sheets,Closures,我正在尝试将电子表格中的一些数据插入到另一个电子表格中,问题是循环的行为不符合预期,它在目标电子表格中只给我一个条目。我试过使用while,但没有任何功能,但它不起作用 代码如下: function move(){ var homeBook = SpreadsheetApp.getActiveSpreadsheet(); var sheet = homeBook.getSheets()[0]; var limit = sheet.getLastRow(); //number of r

我正在尝试将电子表格中的一些数据插入到另一个电子表格中,问题是循环的行为不符合预期,它在目标电子表格中只给我一个条目。我试过使用while,但没有任何功能,但它不起作用

代码如下:

function move(){
  var homeBook = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = homeBook.getSheets()[0];
  var limit = sheet.getLastRow(); //number of rows in the sheet

  var evento = sheet.getRange(2, 1, limit-1).getValues(); //event list
  var descript = sheet.getRange(2,2,limit-1).getValues(); //description list
  var tags = sheet.getRange(2,3,limit-1).getValues(); //tag list
  var sheetsIDHome = sheet.getRange(2,4,limit-1).getValues(); //ID list


  var targetBook = SpreadsheetApp.openById("1t3qMTu2opYffLmFfTuIbV6BrwsDe9iLHZJ_ZT89kHr8"); //target workbook
  var target = targetBook.getSheets()[0]; //Sheet1
  var targetLimit =target.getLastRow(); //Rows with content
  var sheetsIDTarget = target.getRange(targetLimit, 4); // ID list
  var targetRow = targetLimit+1; //row where content is going to be inserted

for(i = 2;i <= limit;i++){//loop for each value to be inserted in each row of the target sheet
(function(x){
          target.getRange(targetRow,1).setValue(x);
          target.getRange(targetRow,2).setValue(descript[2]);
          target.getRange(targetRow,3).setValue(tags[3]);
          target.getRange(targetRow,4).setValue(sheetsIDHome[4]);
          targetRow = targetRow++; 
      })(i);
  };
函数移动(){
var homeBook=SpreadsheetApp.getActiveSpreadsheet();
var sheet=homeBook.getSheets()[0];
var limit=sheet.getLastRow();//工作表中的行数
var evento=sheet.getRange(2,1,limit-1).getValues();//事件列表
var descript=sheet.getRange(2,2,limit-1).getValues();//说明列表
var tags=sheet.getRange(2,3,limit-1).getValues();//标记列表
var sheetsIDHome=sheet.getRange(2,4,limit-1).getValues();//ID列表
var targetBook=SpreadsheetApp.openById(“1t3qmtu2opyfflfmfftuibv6brwsde9ilhzj_ZT89kHr8”);//目标工作簿
var target=targetBook.getSheets()[0];//Sheet1
var targetLimit=target.getLastRow();//包含内容的行
var sheetsIDTarget=target.getRange(targetLimit,4);//ID列表
var targetRow=targetLimit+1;//将插入内容的行

对于(i=2;i您试图访问从列1-4的值创建的四个数组

您的
for
语句需要匹配它们的结构,从
0
的第一个数组实例开始。您可以在迭代中使用任何数组,我选择了第一个

此外,我删除了该函数,并用
evento
中的实例替换了
x

++
增加变量的值,无需在此赋值

for (var i = 0; i < evento.length; i++) {
  target.getRange(targetRow,1).setValue(evento[i]);
  target.getRange(targetRow,2).setValue(descript[i]);
  target.getRange(targetRow,3).setValue(tags[i]);
  target.getRange(targetRow,4).setValue(sheetsIDHome[i]);
  targetRow++; 
}
for(变量i=0;i
有一个代码放错了位置,请检查下面我的代码:

   function UpdateBSRSpecial()
    {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var testForm = ss.getSheetByName("ENTRY FORM");
        var testTable = ss.getSheetByName("BSR DATA");
        var testFormValue = testForm.getRange("G6").getValue();
        var rangeData = testTable.getDataRange();
        var lastColumn = rangeData.getLastColumn();
        var lastRow = rangeData.getLastRow();
       for(var i=2;i<=lastRow;i++){
           var dataID = testTable.getRange(i,1).getValue();
          if(testFormValue == dataID)
        {
            testTable.getRange(i,6).setValue("new value");
        };
      }; 
    }; 
函数updateBSR特殊()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var testForm=ss.getSheetByName(“条目表单”);
var testTable=ss.getSheetByName(“BSR数据”);
var testFormValue=testForm.getRange(“G6”).getValue();
var rangeData=testTable.getDataRange();
var lastColumn=rangeData.getLastColumn();
var lastRow=rangeData.getLastRow();

对于(var i=2;i)您试图实现的目标是什么?“行为不符合预期”有点过于宽泛。如果您不询问“发生了什么…”,而是解释建议更改的原因,这将使未来读者更好地回答这个问题。