RegEx 替换不更新范围 Google 表格中的值

埃纳尔

我想从对话框中添加一个正则表达式模式

在这个特定的例子中,我有像这样的单元格值stuff Gr=something,我正在删除使用下面的函数工作Gr=something的模式/(\s*Gr=).*/

我有

function upDateStrRegEx_n() {
  const a = /(\s*Gr=).*/
  upDateStrRegEx(a)

}

function upDateStrRegEx(text) {
  const ss     = SpreadsheetApp.getActiveSpreadsheet();
  const sht    = ss.getSheetByName("UniqueList_(ignore)");
  const LR     =  sht.getLastRow(); 
  const rng    = sht.getRange("D2:D"+LR);
  var v = rng.getValues(); 

  v = v.map(e => [e[0].replace(text,"")])

  sht.getRange(2,4,v.length,1).setValues(v)
}

但我想从对话框中设置 RegEx 模式

function replaceSubStr() {
    const ss     = SpreadsheetApp.getActiveSpreadsheet();
    const sht    = ss.getSheetByName("UniqueList_(ignore)");
    const Header = sht.getRange("D1").getDisplayValue();
    var ui   = SpreadsheetApp.getUi();
    
    if(isRange("UniqueList_(ignore)", Header) == false) {
      ui.alert('No Range Column ~~> D');
      return
    }

    var result = ui.prompt("Enter RegEx Find Pattern for Column ~~> D",ui.ButtonSet.OK_CANCEL);
    var button = result.getSelectedButton();
    var text   = result.getResponseText();

    if(button == ui.Button.CANCEL) {
      ss.toast('CANCELED');

    }else if (button == ui.Button.OK && text == "") {
       replaceSubStr()

    }else if (button == ui.Button.OK && text != "") {
      upDateStrRegEx(text)
      ss.toast('Updated');

    }else if (button == ui.Button.CLOSE) {
       ss.toast('Closed');

    };
}

但在这里

else if (button == ui.Button.OK && text != "") {
      upDateStrRegEx(text)
      ss.toast('Updated');

    }

从对话框中设置 RegEx 时将不起作用

一切正常运行,但单元格值未更改

感谢您对此的任何帮助

Goole 表https://docs.google.com/spreadsheets/d/1ahJI6dtTeC4IdqhPhwMVxUexIhlZamKlsumwmPWnv8M/edit?usp=sharing

巴马

您需要将对话框中的文本转换为正则表达式。

    } else if (button == ui.Button.OK && text != "") {
      upDateStrRegEx(new RegExp(text + '.*'))
      ss.toast('Updated');
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动替换Google表格中的文本值

Google表格中的REGEX查询

在Google表格中的每个值数组中查找范围(条件)内的值

替换表格中的值

替换表格中的值

使用Google App脚本替换Google表格中的文本而无需重新格式化值

在Google表格公式中使用RegEx提取多个值

Google表格:如何根据不同列中另一个值范围的内容来更新一个列中的值范围的单元格?

Google表格触发器会更新表中的值,但不会保留旧值不变

添加行时,如何更新Google表格中的公式范围?

如何在 Google 表格中找到第 n 个值的表格/范围中的单元格地址

按日期范围过滤,并按列汇总行值(在Google表格中)

在 Google 表格中查找两个日期范围之间的值

Google 表格开关的范围大小不匹配

Google 表格查询:通过附加值列表替换单元格中的值

我的Javascript IF语句似乎认为Google表格中的两个相同值不匹配

在 Google 表格中的“内部值”中过滤

自动更新Google表格范围

Google表格-查找范围内的多个值,并仅返回不匹配的行

Google表格公式中的锁定范围

在Google表格中获取子范围

Google表格-查询中的导入范围

从Google表格中的命名范围提取数据

在Google表格中查找和替换

比较Google表格中的2个范围和不属于第一个范围的返回值

验证值是否在Google表格中

Google表格查询功能中的可选值

跳过 Google 表格中的空值

在Google表格的行中设置数组值