Google电子表格脚本

ra

我在Google Spreadsheet文档的特定工作表中有一列单元格。此列使用内置的JOIN命令引用另一个工作表中的多个值:

=JOIN(", ",Regular!B3,Regular!B9,Regular!B10,Regular!B11,Regular!B12,Regular!B13,Regular!B14)

每个此类单元格的典型输出是用逗号分隔的整数列表f.ex:

2、5、10、12、13

一些单元格使用如下范围:

=JOIN(", ",Regular!B3:B9)

我想将这些单元格锁定在公式中,例如:Regular!$ B $ 3,Regular!$ B:$ 9 ...

现在,我希望每个引用都锁定列和行,但是让我选择行,列或两者兼有的解决方案是一个更好的解决方案。

1)我没有找到一种不使用自定义脚本的方法-我错过了什么吗?

2)我的自定义脚本解决方案未完成:

function eachCellInRange(range, op) {
  var numRows = range.getNumRows();
  var numCols = range.getNumColumns();
  for (var i = 1; i <= numRows; i++) {
    for (var j = 1; j <= numCols; j++) {
      op(range.getCell(i,j), i, j);
    }
  }
};

function lockCell(cell, row, col) {
  var formula = cell.getFormula();
  if(formula) {
    var startIdx = formula.indexOf('(');
    if(startIdx > 0) { 
      //!! REGEX HERE !! //
      cell.setValue(formula);
    }
  }
}

function lockRows() {
  var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange();
  eachCellInRange(range, lockCell);
};

我需要制作一个正则表达式模式,该模式将标识公式中的B3,B9 ...部分并将其更改为$ B $ 3,$ B $ 9 ...,但也不会在B1:B8情况下中断

当前,所有引用都以SheetName为前缀!(例如,Regular!B9:B20),将来可能不会出现,因此首选最通用的解决方案。

杰瑞

我不确定这是否是您要寻找的东西,但是我将代替您目前拥有的一点:

if(formula) {
  var startIdx = formula.indexOf('(');
  if(startIdx > 0) { 
    //!! REGEX HERE !! //
    cell.setValue(formula);
  }
}

经过

if(formula.substring(0,6) == "=JOIN(") {
  formula = formula.replace(/([A-Z]+(?=[0-9]))/g, function($1) {
    return "$" +$1 + "$";
  });
  alert(formula);
  // cell.setValue(formula);
}

这样可以确保公式是JOIN公式。

另外,我对JS不太熟悉,但是我将其放在JSFiddle中以查看其运行方式。

警告:如果工作表名称包含字母数字字符(字母和数字的混合),则此操作将失败。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动更新 Google 电子表格脚本

Google App脚本电子表格

使用Google电子表格脚本复制并粘贴

Google 电子表格脚本 - 搜索功能

语法错误:Google 电子表格脚本

在Google时区(而不是电子表格时区)中使用Google Apps电子表格脚本的日期

从电子表格中修改另一个电子表格:Google Apps脚本

如何根据活动电子表格 Google Apps 脚本中的数据创建多个电子表格?

Google电子表格公式

在Google表格电子表格中按名称对表格进行排序的脚本

通过Google脚本将表格从gmail插入到Google电子表格

Google Apps脚本通过电子表格发送电子邮件

来自电子表格的 PDF 格式的 Google App 脚本电子邮件

从Google表格电子表格调用python脚本的好方法是什么?

Google脚本+电子表格+打开时将整个表格转换为大写

使用应用脚本将表格图表从Google电子表格发送到Slack

电子表格上的Google脚本-创建链接以通过表格修改答案

创建副本后通过 Google Apps 脚本打开 Google 电子表格

使用Google Apps脚本编辑Google电子表格

使用Google脚本将Xbrl集成到Google电子表格中

使用Google脚本循环浏览多个Google电子表格

Google App脚本从Google电子表格日期格式导出CSV

使用Google Apps脚本将Google电子表格导出为JSON(或XML)格式

如何使用Google App脚本合并Google电子表格中的多个标签?

加速电子表格的脚本(GAS - Google App Script & Google Sheets)

通过Google Apps脚本发布Google电子表格

在 Google Apps 脚本中将 XML 解析为 Google 电子表格

使用 Google 应用脚本从表单填充 Google 电子表格

通过Google Apps脚本#2发布Google电子表格