引用由应用程序脚本设置的公式中的相关单元格
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");
}
我正在尝试将 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");
}