根据列单元格值清除特定行

时间:2020-06-13 02:37:01

标签: javascript arrays google-apps-script google-sheets

我有一个可让我清除工作表中所有内容的marco,但我正在尝试执行另一项操作,以仅清除特定行,但不清除其中任何列显示“是”的所有行关。我通过将其分配给按钮来分离该动作。

我一直在stackoverflow和一些网站上,发现一些看起来像它可以工作的代码,但是当我在工作表上尝试时没有任何反应。不确定是我的范围出现问题(我仍然对范围感到困惑)还是代码。

提出一个想法:

  • 包含数据的范围是A3:L100
  • 包含“是”的列是L3:L100列
  • 仅清除特定行,而不重新格式化行中的任何内容。 例如,第1行无法清除,第2行需要清除,第3行无法清除
  • 清除后,将第3行的数据移至第2行,替换第2行的数据。
  • 我正在处理多达100行,因此为什么数据范围在A3:L100

到目前为止,当我运行脚本时,看不到任何包含“是”的行被清除。我非常感谢您的帮助!

以下是我当前从网站获得的验证码:

$ composer global require friendsofphp/php-cs-fixer

1 个答案:

答案 0 :(得分:2)

如果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
   }
 });
}

数组从零开始。行从1开始,因此当范围从1开始且sh.getDataRange()获取工作表上的所有数据时,i + 1是行号。

相关问题