我想知道是否有一种方法可以根据选定的过滤器自动选择单元格范围。
示例:

目前,我的训练是手动输入单元格,这样我就可以继续编写代码了。我希望我在上面说得通。
-密码
function ColHtoActive() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Current');
var crange = sheet.getRange('A7:I7350').activate();
var currentCell = sheet.setCurrentCell(sheet.getRange('H7');
var hSfilter = sheet.getRange('A7:I7350').createFilter();
var ccC1 = sheet.getRange('H7').activate();
var cCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues('Inactive']).build();
sheet.getFilter().setColumnFilterCriteria(8, cCriteria);
}
function copycolA() {
var ss = SpreadsheetApp.getActive().getSheetByName('A');
ss.getRange('A2307').activate();
ss.getRange('A2307:A7155').copyTo(
ss.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL,
false);
}发布于 2018-09-07 17:39:13
您可以从getFilter().getRange()获得已过滤的范围维度。这将复制所有筛选的范围:
function copycolA() {
var sourceSheet = SpreadsheetApp.getActive().getSheetByName('Current');
var targetSheet = SpreadsheetApp.getActive().getSheetByName('A');
var sourceRange = sourceSheet.getFilter().getRange();
sourceRange.copyTo(
targetSheet.getRange('A1'),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL,
false);
}改为:
请注意,.getValues()或其他脚本操作不会只获得筛选,而是所有的值。
发布于 2022-07-21 16:57:03
有可能
function myFilter() {
const ss = SpreadsheetApp.getActiveSpreadsheet(),
sht = ss.getSheetByName("Current"),
rng = sht.getDataRange(),
rawData = rng.getDisplayValues();
let filterValues = ["Inactive"],
col = 8, // column "H".
out = rawData.filter(dataFilter);
out = [rawData[0], ...out]; //Add headers to filtered data
function dataFilter(arr) {
return filterValues.includes(arr[col-1]);
}
const osh=SpreadsheetApp.getActive().getSheetByName("A");
osh.clear();
osh.getRange(1,1,out.length,out[0].length).setValues(out);
}
https://stackoverflow.com/questions/52212388
复制相似问题