【发布时间】:2019-07-15 01:30:56
【问题描述】:
大家好,我尝试制作用于复制过滤数据的脚本,但没有成功。
我想将过滤后的数据自动复制到另一个工作表
function RejectSave() {
var ss = SpreadsheetApp.getActive();
var DataSheet = ss.getSheetByName('Import')
ss.setActiveSheet(DataSheet, true);
var sheet = ss.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).createFilter();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['', 'A', 'B', 'C'])
.build();
ss.getActiveSheet().getFilter().setColumnFilterCriteria(20, criteria);
var SaveSheet = ss.getSheetByName('RAW')
ss.setActiveSheet(SaveSheet, true);
ss.getActiveSheet().insertRowsAfter(ss.getActiveSheet().getMaxRows(), 5);
var SaveRange = SaveSheet.getRange(SaveSheet.getLastRow()+2, 1)
DataSheet.getRange(2, 1, DataSheet.getLastRow(), 26)
.copyTo(SaveRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
DataSheet.getFilter().remove();
};
但是脚本不能只带过滤的数据,它会带该范围内的所有数据,无论是否满足过滤条件。
我想复制刚刚过滤的数据!!
【问题讨论】:
-
请注意,您的代码非常不必要地使用了
setActiveSheet和getActiveSheet。
标签: google-apps-script filter google-sheets