自动查找替换

Automatically Find&Replace

我使用 surveymonkey 工作,当有人不回答我的问题时,我的手机就会充满“未回答”。 目标是将多行合并为一行。 可能的解决方案是:

  1. 我需要一个脚本来自动查找和替换。这将 replace(更准确地说 deleteNot Answered”)为空单元格。所以我的 TEXTJOIN 会起作用。我已经尝试了一些代码,但它对整个 sheet 不起作用。 TEXTJOIN 函数(分隔符,ignore_empty,text1,[text2,...])的问题是第二个参数 igrone_empty 是布尔值,只能与 TRUE 或 FALSE 一起使用,不能写“未回答”。因此,我必须找到另一个解决方案来 ignoredelete 单词“Not Answered”。

  2. 替代 TEXTJOIN,其中单词 "Not Answered" 被忽略。

  3. 或者是否可以在 SurveyMonkey 中删除此选项?

我试过这个解决方案,但对整个 sheet/table 都不起作用。

 var result = ui.alert(
     "Will update " + to_replace + " to " + replace_with + " ",
     'Are you sure you want to continue?',
      ui.ButtonSet.YES_NO);

  // Process the user's response.
  if (result == ui.Button.YES) {

    // User clicked "Yes".
    spread.toast("Will update " + to_replace + " to " + replace_with + " ", "ALERT");

    var data  = range.getValues();

    var oldValue="";
    var newValue="";
    var cellsChanged = 0;

    for (var row=0; row<data.length; row++) {
      for (var item=0; item<data[row].length; item++) {
        oldValue = data[row][item];
        newValue = data[row][item].replace(to_replace, replace_with);
        if (oldValue!=newValue)
        {
          cellsChanged++;
          data[row][item] = newValue;
        }
      }
    }
    range.setValues(data);
    spread.toast(cellsChanged + " cells changed", "STATUS");
  }
  else {
    // User clicked "No" or X in the title bar.
    spread.toast("No action taken", "ABANDONED");
  }
}

试试这个:

function replaceNotAnswerWithBlank(e) {
  var ss=e.source;
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var tf=sh.createTextFinder('Not Answered').findAll();
  for(var i=0;i<tf.length;i++) {
    sh.getRange(tf[i].getRow(),tf[i].getColumn()).setValue('');
  }
}

这个怎么样:

function onOpen(e) {
  replaceNotAnswerWithBlank(e);
}

我需要一个触发器,所以这就是我解决问题的方法。如果有更简单的功能解决方案,请记下来。谢谢库珀。

function onOpen() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var tf=sh.createTextFinder('Not Answered').findAll();
  replaceNotAnswerWithBlank(ss, sh, rg, tf);
}

function replaceNotAnswerWithBlank(ss, sh, rg, tf) {
  for(var i=0;i<tf.length;i++) {
    sh.getRange(tf[i].getRow(),tf[i].getColumn()).setValue('');
  }
}