首页 > 解决方案 > 在新创建的行中插入公式

问题描述

大家好,我想知道如何在新创建的行中插入一个公式这个脚本插入 10 个新行,我想在 E 列的 10 个新创建的行中插入一个公式

var ss = SpreadsheetApp.getActive();
var target = ss.getSheetByName('Data Entry');
target.insertRowsAfter(target.getMaxRows(), 10)

我需要在那些新创建的行中插入这个公式

=If(len(D3:D),vlookup(D3:D,'Configuration List'!A2:B,2,0),"")

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-vlookup

解决方案


您想将行添加到最后一行,并将公式放入已创建行中的 E 列。您想修改公式的“D3:D”。如果我的理解是正确的,这两种解决方案怎么样?我认为您的情况有几种解决方案。因此,请将此视为其中两个。

模式1:

在此脚本中,它创建包含公式的二维数组。并使用 . 将它们放到创建的行的 E 列setFormulas()

var ss = SpreadsheetApp.getActive();
var target = ss.getSheetByName('Data Entry');
var maxRow = target.getMaxRows();
var r = target.insertRowsAfter(maxRow, 10);
var formulas = [];
for (var i = 1; i < maxRow; i++) {
  formulas.push(["=If(len(D" + (maxRow + i) + ":D),vlookup(D" + (maxRow + i) + ":D,'Configuration List'!A2:B,2,0),\"\")"]);
}
target.getRange(maxRow + 1, 5, 10, 1).setFormulas(formulas);

模式 2:

在此脚本中,它创建了一个公式。并使用 . 将其放入已创建行的 E 列setFormula()

var ss = SpreadsheetApp.getActive();
var target = ss.getSheetByName('Data Entry');
var maxRow = target.getMaxRows();
var r = target.insertRowsAfter(maxRow, 10);
var formula = "=If(len(D" + (maxRow + 1) + ":D),vlookup(D" + (maxRow + 1) + ":D,'Configuration List'!$A$2:B,2,0),\"\")";
target.getRange(maxRow + 1, 5, 10, 1).setFormula(formula);

笔记 :

  • 请根据您的情况选择其中之一。

参考 :

如果我误解了你的问题,请告诉我。我想修改它。


推荐阅读