Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Google脚本的公式中使用R1C1符号时出错_Javascript_Google Apps Script_Google Sheets_Spreadsheet_Excel R1c1 Notation - Fatal编程技术网

Javascript 在Google脚本的公式中使用R1C1符号时出错

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(

我的新宏遇到了一些问题

事实上,我正在用谷歌应用程序脚本语言翻译一个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])");
但我仍然会遇到这样的错误:

我读过一些关于间接的东西,但我真的不知道如何使用它,以及它是否对我正在处理的事情有用

如果有人能向我解释为什么我会出错,我的指令有什么问题,那就太好了

谢谢你的阅读。
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。