首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用for循环和if else语句

使用for循环和if else语句
EN

Stack Overflow用户
提问于 2015-04-21 01:10:06
回答 1查看 3.7K关注 0票数 1

我对这件事有点陌生,我想知道我能不能向你寻求帮助。我有点被这个函数困住了,我试图在googlescript中创建这个函数。让我给你一个关于我希望它如何工作的简要说明。给定2个工作表,它查看表1中的数据集,如果(i,12)的值为Open,那么它将复制整个行并将其粘贴到工作表4上的下一个空行(因此它抵消了1行)。如果值为Closed,那么它将继续计算下一个i。这种情况一直持续到最后一行,其中包含表1中的值。

代码语言:javascript
运行
复制
function UpdateList(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var dSheet = ss.setActiveSheet(ss.getSheets()[0]);
    var gSheet = ss.setActiveSheet(ss.getSheets()[3]);
    var lRow = dSheet.getLastRow();
    var lCol = dSheet.getLastColumn();
    var i
    var j = 1

    for (i = 0; i < lRow; i++) { 
        if (dSheet.getRange(i, 12).getValue() == "Open") { 
          dSheet.getRange(i,1,0,lCol).copyValuesToRange(gSheet.setRange(j,1))
        } else {

        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 01:22:34

您正在使用getValue(),在每个循环中获取一个单元格值。这会减慢你的代码速度。获取整个数据列,然后循环遍历数组。为此,您需要使用getValues(),它返回一个二维数组。如果您只从一个列获取数据,那么每个内部数组都将只有一个元素。

对于单个行或单个列,获取外部数组的内部数组是不同的。如果您得到一个单个行的2D数组,那么只会有一个内部数组。

代码语言:javascript
运行
复制
[[cell one, cell two, cell three, etc]]

在上面的2d数组中,只有一个内部数组。因此,您可以简单地使用索引0获得内部数组。

代码语言:javascript
运行
复制
var innerArray = outerArray[0];

如果您从电子表格中获得一列数据,则会有许多内部数组。

代码语言:javascript
运行
复制
[[one],[two],[three],[etc]]

在这种情况下,不能简单地获得外部数组的零索引。在这种情况下,您可以有两个For循环,一个嵌套在另一个内部。外部循环将获取每个内部数组,内环将获得内部数组的contents

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

https://stackoverflow.com/questions/29761134

复制
相关文章

相似问题

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