首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多行从一个工作表复制到一个脚本(...is不是函数错误)

将多行从一个工作表复制到一个脚本(...is不是函数错误)
EN

Stack Overflow用户
提问于 2022-05-27 15:22:53
回答 1查看 24关注 0票数 0

我正在尝试编写一个脚本,该脚本将复制常规源表上的特定行,并将其粘贴到目标表。我知道网上有很多这样的例子,但是有些变体不适用于我的代码,所以我很难申请(新手)。

下面是我编写的代码:

代码语言:javascript
复制
function singleSheetIOD() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr = ss.getLastRow();
  var fillDownRange = ss.getRange(2, 19, lr-3);
    ss.insertColumnAfter(18);
    ss.getRange(1,19,1,1).setValue('IOD');
    ss.getRange("S2").setFormula("=H2*R2");
    
ss.getRange("S2").copyTo(fillDownRange);

    const netSquare = ss.getRange('S2:S').getValues().flat().filter(v=>v!='');
    const sum = netSquare.reduce((a,b)=>a+b);
    ss.getRange(ss.getLastRow(), 20, 1, 1).setValue(sum);

    const value1 = ss.getRange(lr, 20).getValue();
    const value2 = ss.getRange(lr,9).getValue();
    const divisor = value1/value2;

    ss.getRange(lr,11,1,1).setValue(divisor);

%below this is the actual "copy and paste" attempt

  var lastTwoRows = ss.getRange(lr-1,1,2,11).getValues();
  var pastesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Summary');
    pastesheet.setValues(lastTwoRows);
}

我一直收到这个错误: TypeError: pastesheet.setValues不是一个函数

重要的是,不要按名称(仅定义目标表)来定义源表,因为这是嵌套在一个for循环中,该循环将遍历电子表格中的所有其他工作表。

有人知道我为什么会收到这个错误吗?

非常感谢。

AEB

EN

回答 1

Stack Overflow用户

发布于 2022-05-27 20:46:52

您必须定义要在range上查找的工作表的setValues

代码语言:javascript
复制
// Currently:
pastesheet.setValues(lastTwoRows);

// Needs to be:
pastesheet.getRange(...).setValues(lastTwoRows);

现在,您正在尝试在工作表上设置值,但尚未指定将它们放在何处。

注意:范围必须与所设置的数组的大小相等。

见:

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

https://stackoverflow.com/questions/72407652

复制
相关文章

相似问题

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