根据另一个单元格的值删除单元格值

时间:2018-10-12 11:02:48

标签: google-apps-script google-sheets

如果列J中的值= *

,我需要清除列A中的单元格

使用以下公式检索了在列J中找到的星号:=iferror(REGEXEXTRACT(A4, "\*"), "")

A列的内容将手动输入,例如:

0701870 Jansen,彼得·彼得(VH)(*)10:00-15:00 5:00

07908765 Predo``骨PT2(ZS)(^)09:00-14:00 5:00

0715777 Tyk,,手册PT2 09:00-14:00 5:00

基本上,我复制到包含要清除的*^的列A中的每个字符串。我有一个为我执行此操作的脚本,但是这会删除整行。

function deleteRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Floor 5a');
  var r = s.getRange('J:J');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i]=='*')
      s.deleteRow(i+1);
};

老实说,我不知道自己在做什么。脚本知识为零。我复制了类似于我的问题的粘贴解决方案,并希望它们能起作用,到目前为止,他们已经完成了,但是现在陷入了这个“问题”。现在,它将删除列A的所有内容。但是,如果J4和/或J5等中包含*,则仅需要删除A4的内容。

function deleteRows() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var s = sheet.getSheetByName('Floor 5a');
  var r = s.getRange('J:J');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i]=='*')
      var rangeList = sheet.getRangeList(['A:A']);
  rangeList.clearContent();
};

预先感谢

安德鲁

1 个答案:

答案 0 :(得分:0)

在网络上的某个地方找到了另一个似乎可行的脚本:

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

在这里找到它:Clear cell google sheet script