google-apps-script - 将撇号设置为 Google 表中的变量

标签 google-apps-script google-sheets

我正在尝试创建一个函数来查找并替换我的 Google 表格中的所有撇号。

这是函数:

function VymazApostrofu(){
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sh.getActiveSheet();
  var f = "\'";
  var r = "";
  var data = ss.getDataRange().getValues();
  Logger.log(data.length);
  for (var i = 0; i < data[0].length;i++){
    for (var j = 0; j < data.length;j++){
      if(data[j][i]==f)
      ss.getRange(j+1,i+1).setValue(r);
    }
  }  
}

问题是,我找不到方法,如何将撇号设置为变量 f。你能帮我一下吗?

我尝试过双引号、转义标记为 ,但没有任何效果。

最佳答案

我相信您的目标如下。

  • 您希望使用 Google Apps 脚本将单引号 ' 替换为 ``(空)。

修改点:

  • 在您的脚本中,setValue 在循环中使用。在这种情况下,我担心流程成本会变高。
  • data[j][i] == f的情况下,当单元格值只有'时,就变为true。从 I has attemptsed double quote, escape mark as , but Nothing is work. ,我认为这可能是您当前问题的原因,而且,从您的情况来看,在您的实际情况中,我猜测单引号可能包含在单元格的文本中。

当这些点反射(reflect)在修改后的脚本中时,下面的修改如何?

修改后的脚本1:

在此示例脚本中,事件工作表中的所有单引号均被删除。

function VymazApostrofu() {
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sh.getActiveSheet();
  var f = "'";
  var r = "";
  var range = ss.getDataRange();
  range.createTextFinder(f).replaceAllWith(r);
  range.setValues(range.getValues());
}
  • 运行此脚本时,使用 TextFinder 和 setValues 将单元格值的 ' 替换为空。 (' 被删除。)我认为,当在您的情况下使用 TextFinder 和 setValues 时,过程成本可以减少一点。

  • 重要的是,如果将单引号添加到单元格值的第一个字符,则用于将单元格值用作字符串。例如,001放入单元格中,它就变成1。但是,'001放入单元格中,它就变成了文本的001,而当您选择单元格时,您可以看到'001。关于这一点,这个线程可能有用。 Ref

    • 如果您只想删除单元格值顶部字符的单引号,请测试以下模式 2。

修改后的脚本2:

在此示例脚本中,单元格值顶部字符的单引号被删除。

function VymazApostrofu2() {
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sh.getActiveSheet();
  var range = ss.getDataRange();
  var f = "'";
  var r = "";
  range.createTextFinder(`^${f}{1,}`).useRegularExpression(true).replaceAllWith(r);
  range.setValues(range.getValues());
}

引用文献:

关于google-apps-script - 将撇号设置为 Google 表中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75698113/

相关文章:

google-apps-script - 在 Google 表格中,我如何编写默认缩放操作的脚本?

google-apps-script - Google 脚本侧边栏图像

python - Gspread 访问 google 电子表格 : HttpAccessTokenRefreshError, 无效的 JWT

google-sheets - QUERY Google Sheets 函数中同一字符串中的引号和撇号

excel - 没有嵌套 IF 的多个 IF 语句

javascript - 正则表达式匹配某些字符并排除某些字符但没有负面前瞻

javascript - 使用脚本中的数据,通过排序或警告框的形式编辑 Google 电子表格中的数据

google-apps-script - 谷歌表格, "The request is missing a valid API key"

javascript - 我试图在大范围的特定单元格中挑选出所有带有 '1' 的行,是否有更有效的方法来做到这一点?

javascript - 将 JSON 填充并格式化为 Google 表格