仅将值从一张纸复制到另一张纸

时间:2018-06-20 18:03:28

标签: google-apps-script

我有一个带有活动过滤器的工作表,由于过滤器后面还有成千上万个其他不相关的行,因此我基本上想删除除过滤数据以外的任何内容。

作为一种解决方案,我计划将已过滤数据的值范围复制粘贴到干净的工作表中:

function formatUserSheet_(id, sheet) {
  var ss = SpreadsheetApp.openById(id);
  var sheetToCopyFrom = ss.getSheets()[1];
  var sheetToCopyTo = ss.getSheets()[0];
  sheetToCopyFrom.getRange("AT:BH").copyTo(sheetToCopyTo.getRange(1,1), SpreadsheetApp.CopyPasteType.PASTE_VALUES);
}

不幸的是,除了返回#REF之外,结果几乎是完美的!错误,因为它继承了公式,而不仅仅是值。

1 个答案:

答案 0 :(得分:2)

您要使用的函数是带有3个参数的copyTo(destination, copyPasteType, transposed)。如果仅放置2个参数,则使用copyTo(destination, options),因此粘贴类型是默认的。

如果在函数末尾为参数transposed添加false,它将正确复制值。

sheetToCopyFrom.getRange("AT:BH").copyTo(sheetToCopyTo.getRange(1,1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

由于某些原因,示例仅使用2个参数,我想它必须已更改,并且它们没有更新示例...