我有一个带有活动过滤器的工作表,由于过滤器后面还有成千上万个其他不相关的行,因此我基本上想删除除过滤数据以外的任何内容。
作为一种解决方案,我计划将已过滤数据的值范围复制粘贴到干净的工作表中:
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之外,结果几乎是完美的!错误,因为它继承了公式,而不仅仅是值。
答案 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个参数,我想它必须已更改,并且它们没有更新示例...