Google apps script 引用应用程序脚本设置的公式中的相对单元格

Google apps script 引用应用程序脚本设置的公式中的相对单元格,google-apps-script,setvalue,Google Apps Script,Setvalue,我正在尝试将气体设置公式放入电子表格的各个单元格中 这项工作: sheet1.getRange(rowID, 14).setValue("=iferror(vlookup(M2,'sheet2'!C:O,13,false),\"\")"); 但我需要公式中的行是相对的,不总是M2 我认为这会奏效: sheet1.getRange(rowID, 14).setValue("=iferror(vlookup(M" & rowID & ",'sheet2'!C:O,13,false)

我正在尝试将气体设置公式放入电子表格的各个单元格中

这项工作:

sheet1.getRange(rowID, 14).setValue("=iferror(vlookup(M2,'sheet2'!C:O,13,false),\"\")");
但我需要公式中的行是相对的,不总是M2

我认为这会奏效:

sheet1.getRange(rowID, 14).setValue("=iferror(vlookup(M" & rowID & ",'sheet2'!C:O,13,false),\"\")");
但它会在单元格中粘贴一个0。怎么回事?

试试这个:

getRange(rowID, 14).setValue("=iferror(vlookup(M" + rowID + ",'sheet2'!C:O,13,false),\"\")");

看看下面关于使用的博客

尝试使用间接函数。它将帮助您以相对的方式自动生成下一个单元格。请告诉我您是如何使用它的。

使用.setFormulaR1C1方法而不是.setValue方法。 这将允许您从当前设置范围的起始参考点参考相对位置

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getActiveSheet();

  sheet1.getRange(1, 1).setValue(10);
  sheet1.getRange(2, 2).setFormulaR1C1("=R[-1]C[-1] + 15");
}

谢谢工作得很有魅力!