繁体   English   中英

根据单元格将Google工作表行转移到其他工作表

[英]Transfer google sheet rows to another sheet based on cell


感谢您抽出宝贵时间来查看我的问题。
我正在考虑根据单元格值将数据行转移到新的电子表格中。
我本人已经找到了一些示例,但是并不能完全满足我的确切需求。 如果我忽略了以前回答的任何问题,请指出正确的方向。 我能够实现的最接近的是我当前的代码。

当E =“ Y”从COPY工作表复制到PASTE工作表时,我正在将AE列中的数据复制-工作表示例如下。 我当前的问题是,即使D不是“ Y”,它也会复制所有数据,并为“ Y”的每个实例复制它。
因此,如果我在E列中有3个“ Y”,那么它将被复制3次以上。
从此表复制
粘贴到此表

 function transfer() { var sss = SpreadsheetApp.getActiveSpreadsheet(); var ss = sss.getSheetByName('COPY'); var range = ss.getRange('A2:E'); var data = range.getValues(); for (var i = 0; i <data.length; ++i){ var row = data[i]; var check = row[4]; var tss = SpreadsheetApp.openById("1qxR-L2-Tj7slZQ0NMbQl0-JXZ8iVO59410ccVNZk7Ys"); var ts = tss.getSheetByName('PASTE'); if (check == "Y") { ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data); } } } 

您的“数据”变量存储了源工作表中的所有值,因此调用setValues(data)会将所有内容传输到目标工作表。 为简单起见,您可以将其替换为:

ts.appendRow(row);

另一个问题是如何调用“ getRange()”方法:

sheet.getRange(startRow, startColumn, numberOfRows, numberOfColumns);

在您的情况下,行数等于data.length,但必须为1,因为您只需要复制一行即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM