引用由应用程序脚本设置的公式中的相关单元格

Refer to a relative cell within a formula set by apps script

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

这个有效:

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),\"\")");

查看以下关于使用 Spreadsheet relative cell references 的博客。

尝试使用间接函数。它将帮助您以相对方式自动生成下一个单元格。让我知道你如何处理它。

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

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");
}