Javascript 在Google脚本的公式中使用R1C1符号时出错
我的新宏遇到了一些问题 事实上,我正在用谷歌应用程序脚本语言翻译一个VBA宏,但我不懂一些东西 说明:Javascript 在Google脚本的公式中使用R1C1符号时出错,javascript,google-apps-script,google-sheets,spreadsheet,excel-r1c1-notation,Javascript,Google Apps Script,Google Sheets,Spreadsheet,Excel R1c1 Notation,我的新宏遇到了一些问题 事实上,我正在用谷歌应用程序脚本语言翻译一个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(
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])");
但我仍然会遇到这样的错误:
我读过一些关于间接的东西,但我真的不知道如何使用它,以及它是否对我正在处理的事情有用
如果有人能向我解释为什么我会出错,我的指令有什么问题,那就太好了
谢谢你的阅读。
Thinkpad23您不能将
=SUM(R[-3]C[0]:R[-1]C[0])
参数复制/粘贴为公式,它仅在通过调用setFormulaR1C1
函数使用Google Apps脚本执行时起作用,该函数解析行和列值并返回有效公式
在您的情况下,对于单元“I3”应用程序,脚本最终将转换为
cell.setFormulaR1C1(“=SUM(R[0]C[-2]:R[0]C[-1])
to=SUM(G3:H3)
首先,如果要使用R1C1表示法,必须使用间接表示法和第二个参数FALSE,即
=INDIRECT("R[0]C[-2]",FALSE)+INDIRECT("R[0]C[-1]",FALSE)
尽管如此,使用google sheets时,您最好在列的顶部使用arrayformula
={"QTE_APRES";ARRAYFORMULA(G2:G+H2:H)}
也许我误解了你的意思,但实际上,如果我们不能使用R1C1符号,我不明白setFormulaR1C1函数的用途是什么?我只是按照谷歌给出的例子。。。对不起,如果我把你的答案弄错了,因为语言障碍,我什么都不懂。ThinkPad23你知道如何使用Google Apps脚本运行函数吗?谢谢你的回答,这对我很有帮助。祝您有个美好的一天。Thinkpad23。