首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Scripts For循环

Google Scripts For循环
EN

Stack Overflow用户
提问于 2015-08-16 02:55:43
回答 2查看 81.1K关注 0票数 6

我试图将电子表格中的一些数据插入到不同的电子表格中,问题是循环的行为并不像预期的那样,它只给我目标电子表格中的一个条目。我试过使用while和no函数,但它不起作用。

代码如下:

代码语言:javascript
运行
复制
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);
  };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-16 03:19:17

您正在尝试访问根据第1-4列的值创建的四个数组。

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

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

++递增变量的值,不需要赋值。

代码语言:javascript
运行
复制
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++; 
}
票数 8
EN

Stack Overflow用户

发布于 2019-11-06 20:32:51

有一个代码放错了地方,请检查我下面的代码:

代码语言:javascript
运行
复制
   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");
        };
      }; 
    }; 

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32028204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档