Google apps script 仅将值从一张图纸复制到另一张图纸

Google apps script 仅将值从一张图纸复制到另一张图纸,google-apps-script,Google Apps Script,我有一个带有活动过滤器的工作表,我基本上想删除除过滤数据之外的任何内容,因为过滤器后面还有数千行其他不相关的行 作为一种解决方案,我计划将过滤数据的值范围复制粘贴到一张干净的工作表上: function formatUserSheet_(id, sheet) { var ss = SpreadsheetApp.openById(id); var sheetToCopyFrom = ss.getSheets()[1]; var sheetToCopyTo = ss.getSheets(

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

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

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!错误,因为它传递的是公式,而不仅仅是值。

要使用的函数有3个参数。如果您只输入了2个参数,那么它正在使用,因此粘贴类型是默认类型

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

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

出于某种原因,示例只使用了2个参数,我猜它一定已经更改,并且它们没有更新示例…

如果要在
范围内设置值,则需要使用
范围#setValues()
方法。当然,复制范围的方法将复制它,并且不会生成公式值(或公式值)。使用setValues()复制范围不适用于筛选的行。为什么用SpreadsheetApp.CopyPasteType.PASTE_值复制一个范围不起作用?当我在Google Sheets中选择一个范围时,复制,然后选择“特殊粘贴”并选择“仅值”,这会起作用。我无法用应用程序脚本模拟此行为?