过滤时方法签名发生变化
Method signature changes when filtering
出于某种原因,它在过滤模式下不接受我的参数。
我需要做什么?
错误:
Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Filter.getRange.
CollectCases
作品:
var SS = partner_list.getSheetByName("Ark 1");
SS.getRange("A2:R");
无效:
var SS = partner_list.getSheetByName("Ark 1");
SS.getFilter().getRange("A2:R");
导致错误的原因是 SpreadsheetApp.Filter.getRange
不接受任何参数,这与 SpreadsheetApp.Sheet.getRange
不同。
它只会 return 应用过滤器的范围。 (每个 sheet 只能有一个过滤器)
如果您只想获取过滤器范围的特定部分,这里是使用 offset
的解决方法示例。
解决方法:
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
// Filter is applied to "A6:A12" with values 1, 2, 3, 4, 5, 6
var range = ss.getFilter().getRange();
// If you only want a part of the filtered range
// Then, you need to use offset
// E.g. You want filtered A10:A12 with values 4, 5, 6
var rowOffset = 3;
var colOffset = 0;
var rows = range.getValues().length - rowOffset;
// rowOffset = number of rows offset (3 rows below)
// colOffset = number of columns offset (same column)
// rows = number of rows to be fetched
Logger.log(range.offset(rowOffset, colOffset, rows).getValues());
}
输出:
资源:
出于某种原因,它在过滤模式下不接受我的参数。 我需要做什么?
错误:
Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Filter.getRange.
CollectCases
作品:
var SS = partner_list.getSheetByName("Ark 1");
SS.getRange("A2:R");
无效:
var SS = partner_list.getSheetByName("Ark 1");
SS.getFilter().getRange("A2:R");
导致错误的原因是 SpreadsheetApp.Filter.getRange
不接受任何参数,这与 SpreadsheetApp.Sheet.getRange
不同。
它只会 return 应用过滤器的范围。 (每个 sheet 只能有一个过滤器)
如果您只想获取过滤器范围的特定部分,这里是使用 offset
的解决方法示例。
解决方法:
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
// Filter is applied to "A6:A12" with values 1, 2, 3, 4, 5, 6
var range = ss.getFilter().getRange();
// If you only want a part of the filtered range
// Then, you need to use offset
// E.g. You want filtered A10:A12 with values 4, 5, 6
var rowOffset = 3;
var colOffset = 0;
var rows = range.getValues().length - rowOffset;
// rowOffset = number of rows offset (3 rows below)
// colOffset = number of columns offset (same column)
// rows = number of rows to be fetched
Logger.log(range.offset(rowOffset, colOffset, rows).getValues());
}