![](/img/trans.png)
[英]How do you make a script in Google Sheets to delete certain values in a column?
[英]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.