在Google表格中,如果B列上的任何值包含位于“后端”范围D3:E20
中的值,我试图删除“数据”表上的整行,如果您对a以word为条件,但不在getValue
范围内运行,逻辑应该像这样工作,但目前不是这样,我在这里看了几个问题,但只发现了将特定单词或短语硬编码到delete值中的选项,对于代码似乎有什么问题有何见解?
function deletee() {
var SS = SpreadsheetApp.openById('XXXXXXXXXXX');
var SHEET = SS.getSheetByName('Data');
var RANGE = SHEET.getDataRange();
var deletedata = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Backend').getRange("D3:E20");
var deletee = deletedata.getValues();
var DELETE_VAL = deletee;
var COL_TO_SEARCH = 1;
function deleteEachRow(){
var rangeVals = RANGE.getValues();
//Reverse the 'for' loop.
for(var i = rangeVals.length-1; i >= 0; i--){
if(rangeVals[i][COL_TO_SEARCH] === DELETE_VAL){
SHEET.deleteRow(i+1);
};
};
};
}
答案 0 :(得分:0)
function dd() {
var d=0;
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Data');
const rg=sh.getRange(1,1,sh.getLastRow(),sh.getLastColumn());
const vA=rg.getValues();
const dsh=ss.getSheetByName('Backend');
const drg=dsh.getRange('D3:E20');
var dvs=drg.getValues().reduce(function(a,r) {a=a.concat(r);return a;},[]);
vA.forEach(function(r,i){if(dvs.indexOf(r[1])!=-1){sh.deleteRow(i+1-d++);}});
}