【问题标题】:Error using R1C1 notations in Formula on Google Script在 Google 脚本公式中使用 R1C1 符号时出错
【发布时间】:2021-04-12 08:57:39
【问题描述】:

我的新宏遇到了一些问题。

事实上,我正在用 Google Apps 脚本语言翻译一个 VBA 宏,但我什么都不懂。

说明:

  feuille_31.insertColumnAfter(8); // Inserting a new column
  feuille_31.getRange(1,9).setValue(libel); // Rename my column.
  feuille_31.getRange("I2"+":I"+lig).setFormulaR1C1("=SUM(R[0]C[-2]:R[0]C[-1])");
  // SUM between the value in column -2 and column -1.

我为此抄袭了谷歌的语法:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B5");
// This sets the formula to be the sum of the 3 rows above B5
cell.setFormulaR1C1("=SUM(R[-3]C[0]:R[-1]C[0])");

但我仍然收到这种类型的错误: Screen of my sheet

我读过一些关于 INDIRECT 的文章,但我真的不明白如何使用它,以及它是否对我正在处理的事情有用。

如果有人可以向我解释为什么我会收到 #ERROR,我的指令有什么问题,那就太好了。

感谢阅读。 Thinkpad23

【问题讨论】:

    标签: javascript google-apps-script google-sheets spreadsheet excel-r1c1-notation


    【解决方案1】:

    您不能将=SUM(R[-3]C[0]:R[-1]C[0]) 参数复制/粘贴为公式,它仅在通过调用setFormulaR1C1 函数使用Google Apps 脚本执行时有效,该函数解析行和列值并返回有效公式。

    在您的情况下,对于单元格“I3”,Apps 脚本最终会将cell.setFormulaR1C1("=SUM(R[0]C[-2]:R[0]C[-1])"); 转换为=SUM(G3:H3)

    【讨论】:

    • 也许我误解了你的意思,但实际上,如果我们不能使用 R1C1 符号,我不明白 setFormulaR1C1 函数的目的?我只是按照谷歌给出的例子......对不起,如果我的回答有误,由于语言障碍,我不明白所有内容。 Thinkpad23
    • 您知道如何使用 Google Apps 脚本运行函数吗?
    【解决方案2】:

    首先,如果要使用R1C1表示法,必须使用INDIRECT和第二个参数FALSE,即

    =INDIRECT("R[0]C[-2]",FALSE)+INDIRECT("R[0]C[-1]",FALSE)
    

    尽管如此,对于谷歌表格,您最好在列顶部使用 arrayformula

    ={"QTE_APRES";ARRAYFORMULA(G2:G+H2:H)}
    

    【讨论】:

    • 感谢您的回答,这对我帮助很大。祝你今天过得愉快。 Thinkpad23.
    猜你喜欢
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    相关资源
    最近更新 更多