Попробуйте это:
function clearSelectedLocations() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rA=['O38:P39','A38:B39','O26:P27','I26:J27','G26:H27','A26:B27','O16:P17','I16:J17','G16:H17','A16:B17','O6:P7','I6:J7','G6:H7','A6:B7'];
var rgA=sh.getRangeList(rA).getRanges();
for(var i=0;i<rgA.length;i++) {
rgA[i].clear({contentsOnly: true, skipFilteredRows: true});
}
}
Попробуйте это:
function clearSelectedLocations() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var vA=rg.getValues()
for(var i=0;i<vA.length;i++) {
if(sh.isRowHiddenByFilter(i+1)) {
continue;
}else{
for(var j=0;j<vA[i].length;j++) {
if(vA[i][j].toString()=="On Duty") {
sh.getRange(i+1,j+1).clear({contentsOnly: true});
}
}
}
}
Если вам нужно очистить более одного значения:
function clearSelectedLocations() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var vA=rg.getValues();
var clA=["On Duty"];
for(var i=0;i<vA.length;i++) {
if(sh.isRowHiddenByFilter(i+1)) {
continue;
}else{
for(var j=0;j<vA[i].length;j++) {
if(clA.indexOf(vA[i][j].toString())>-1) {
sh.getRange(i+1,j+1).clear({contentsOnly: true});
}
}
}
}