繁体   English   中英

谷歌表格 - 如果我在某列的值中有 0,则删除范围值

[英]Google Sheets - Delete values of range if I have 0 in values of certain column

如果在 BI 列中有值为 0 的单元格,我想删除 B 列和 C 中的值。

我已经根据这个论坛上的其他代码尝试了这个,方法 push 来填充一个空白范围。 问题是,当我在 arrays(B 和 C 的值)上清除内容时,它会清除我所有的值,即使它们的值不为零。

我尝试使用我的第二个范围(C 的值)的 fontsize 搜索错误并且它有效。

我的代码是:

function clean0() {
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var data = sheet.getRange('B:B').getDisplayValues(); 
  var range = []; 
  var rangeC= []; 
  data.forEach(function(e, i){ 
    if (e[0] == "0"){  
      range.push("B" + (i + 1)); 
      rangeC.push("C" + (i + 1)); 
    }
  });
  sheet.getRangeList(range).clearContent();
  sheet.getRangeList(rangeC).clearContent();

您可以为您尝试以下编辑的代码,我认为比使用push function 清除内容要好得多,尽管在这种情况下我没有使用clearContent===如果为空,则防止清除范围:

function clean0() {
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var range = sheet.getRange('B:D');
  var data = range.getValues(); 
 
  data.forEach(function(row){  
    if (row[0] === 0){
      row[0] ='';
      row[1] ='';
    }  
  });
 range.setValues(data)
}
function clean0() {
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var range = sheet.getRange('B:C');
  var data = range.getValues();
  var formulas=range.getFormulas();


   data.forEach(function(row, index){    
   //console.log('Index:'+ index + 'row' + row);
    row.forEach(function(amount,index1,array){
  //console.log('Row: ' + array);
    var index2=row.slice(0,1);
    if (row[0] == 0 && row[1]>0){
   
     sheet.getRange(row).clear({commentsOnly: true});

    //console.log('Row after: ' + row)
    //data[index][index1] = "";
    //console.log(data)
        }
        });
      });

   range.setFormulas(formulas)
   //range.setValues(data)
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM