我不是很擅长此事,但是尝试制作一个脚本来查看我的电子表格,如果在特定列('AW')中看到“ 1”,则从该列的另一列中删除该值同一行(“ L”)。
我觉得我与下面的内容已经很接近了,但是运行脚本时什么也没发生。这很可能是很多问题,如果这不是问我问题的正确方法,我很抱歉-它告诉了我先前提出的问题并没有得到很好的回答,因此我很可能被禁止问更多。在过去的48小时里,我一直在寻找答案。
function wipeName() {
var s = SpreadsheetApp.getActiveSheet();
var r = s.getRange('AW2:AW51');
if( s.getName() == "GB Spreadsheet" )
{
if( r.getColumn() == 1 && r.getValue() == '1')
{
var nextCell = r.offset(0, -37);
nextCell.clearContent();
}
}
}
当它运行时,如果列“ AW”中有一个“ 1”,我希望删除列“ L”中的值。它没有删除该值,但没有收到任何错误消息。
答案 0 :(得分:0)
尝试一下:
function wipeName(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg1=sh.getRange('AW2:AW51');//condition range
var vA1=rg1.getValues();
var rg2=sh.getRange('L2:L51');//output range
var vA2=rg2.getValues();
for(var i=0;i<vA1.length;i++){
if(vA1[i][0]==1){//note: single columns are still 2d arrays. If condition range equals 1 the set output range to null
vA2[i][0]='';
}
}
rg2.setValues(vA2);
}
答案 1 :(得分:0)
或这个
function check() {
var check = "C:C",
target = "H:H",
state = 2,
s = SpreadsheetApp.getActiveSheet(),
r = s.getRange(check),
t = s.getRange(target),
lr = s.getLastRow()-1, //last data without header
rc = r.getColumn(),
tc = t.getColumn(),
r2 = s.getRange(state,rc,lr,1), //get specific range
val = r2.activate().getValues();
Logger.log(val.length); //Logger will give current data length
for(var x = 0; x<val.length; x++){
if(val[x][0]==1){
var dat = s.getRange(x+state,tc).activate();
dat.clear();
}
}
}
确保更改var 检查和目标 check this out