![](/img/trans.png)
[英]Clear Row Data Based on Value in Google Sheet ( Specific Data ) appscript
[英]Clear specific row based on a column cell value
我有一个允许我清除工作表上所有内容的 marco,但我正在尝试执行另一个操作以仅清除特定行,但并非所有列中显示“是”一词的所有行都将被清除。 我通过将它分配给一个按钮来分离这个动作。
我一直在 stackoverflow 和一些网站上,发现一些看起来可以工作的代码,但是当我在我的工作表上尝试它时,什么也没发生。 不确定是我的范围有问题(我仍然对范围感到困惑)还是代码。
给出一个想法:
截至目前,当我运行脚本时,我没有看到任何包含“是”的行被清除。 我非常感谢您的帮助!
以下是我当前来自网站的代码:
function Remove(){
var depositid = SpreadsheetApp.getActiveSpreadsheet();
var sheet = depositid.getSheetByName("customer"); // sheet name is this "customer"
var RANGE = sheet.getDataRange(); //do i have to fill in the ranges here?
var DELETE_VAL = "Yes"; // Keyword to remove the row
var COL_TO_SEARCH = 11; // Column L = 11
function main() {
var startTime = new Date().getTime();
var deleteSelectedRows = removeThenSetNewVals();
var runTime = (new Date().getTime() - startTime)/1000;
Logger.log("Runtime is: "+runTime + " seconds");
};
function removeThenSetNewVals(){
var rangeVals = RANGE.getValue();
var newRangeVals = [];
for(var i = 0; i < rangeVals.length; i++){
if(rangeVals[i][COL_TO_SEARCH] != DELETE_VAL){
newRangeVals.push(rangeVals[i]);
};
};
RANGE.clearContent();
var newRange = SHEET.getRange(1,1,newRangeVals.length, newRangeVals[0].length);
newRange.setValues(newRangeVals); //not sure if this is the culprit
}
};
如果 column11 等于“是”,则清除行
function Remove(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName("customer");
var vs=sh.getDataRange().getValues();
vs.forEach(function(r,i){
if(r[10]=='Yes') {//if column 11=="yes"
sh.getRange(i+1,1,1,sh.getLastColumn()).clear();//clear current row
}
});
}
Arrays 从零开始。 行从 1 开始,因此当您的范围从 1 开始并且 sh.getDataRange() 获取工作表上的所有数据时, i+1 是行号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.