Google apps script 为什么.setFormulaR1C1正确地复制了公式,但计算不正确?

Google apps script 为什么.setFormulaR1C1正确地复制了公式,但计算不正确?,google-apps-script,Google Apps Script,这是一个错误,但添加的IFERROR正在工作。如果我复制并粘贴在函数执行过程中添加的公式,并将其返回到单元格中,则效果良好。粘贴的公式和正在使用的公式之间没有区别。单元格被格式化为数字 我希望公式能够正确更新和计算 我已经尝试过将其更新为之后的数字,但只有在相同的公式中重新粘贴才有效。我在其他任何地方都没有发现这个问题 function populateFormula(){ var sheet = SpreadsheetApp.getActive(); var ss = sheet.ge

这是一个错误,但添加的IFERROR正在工作。如果我复制并粘贴在函数执行过程中添加的公式,并将其返回到单元格中,则效果良好。粘贴的公式和正在使用的公式之间没有区别。单元格被格式化为数字

我希望公式能够正确更新和计算

我已经尝试过将其更新为之后的数字,但只有在相同的公式中重新粘贴才有效。我在其他任何地方都没有发现这个问题

function populateFormula(){
  var sheet = SpreadsheetApp.getActive();
  var ss = sheet.getSheets()[0];

  var cells = sheet.getRange('C3:C1000');
  sheet.getRange('C3:C').activate();
  sheet.getActiveRange().setFormulaR1C1('=(VLOOKUP(R[0]C[-2],\'Main 
  Report \'!A:Z,5,false))');
它根本不像你想象的那样工作。

使用

sheet.getActiveRange().setFormula('=VLOOKUP(R[0]C[-2],Data2!A:Z,3,false)')

而不是

sheet.getActiveRange().setFormulaR1C1('=VLOOKUP(R[0]C[-2],Data2!A:Z,3,false))

原因是,即使
setFormulaR1C1
需要R1C1符号(
R[0]C[-2]
),正如您提供的,您也在使用
Data2!A:Z
这是一个

使用

sheet.getActiveRange().setFormula('=VLOOKUP(R[0]C[-2],Data2!A:Z,3,false)')

而不是

sheet.getActiveRange().setFormulaR1C1('=VLOOKUP(R[0]C[-2],Data2!A:Z,3,false))


原因是,即使
setFormulaR1C1
需要R1C1符号(
R[0]C[-2]
),正如您提供的,您也在使用
Data2!A:Z
这是一个

尝试使用setFormula()而不是setFormulaR1C1()。但是,将范围设置为!A:Z给了我一个越界的错误。你能分享你的工作表的一个例子吗?当然,谢谢,这里有一个链接指向我做的类似情况,但没有敏感信息:正如你所看到的,粘贴的公式显示的与我在第一行手动复制的公式完全相同-但是它们的计算方式不同。99%确定这是一个意外的错误,但只是想确定一下。我可以在没有R1C1的情况下复制特定于单元格的公式吗?是的,我在回答中使用setFormula()而不是setFormulaR1C1()来解释它。但是,将范围设置为!A:Z给了我一个越界的错误。你能分享你的工作表的一个例子吗?当然,谢谢,这里有一个链接指向我做的类似情况,但没有敏感信息:正如你所看到的,粘贴的公式显示的与我在第一行手动复制的公式完全相同-但是它们的计算方式不同。99%确定这是一个意外的错误,但只是想确定一下。我能在没有R1C1的情况下复制一个特定于细胞的公式吗?是的,我正在回答这个问题