繁体   English   中英

自动填充公式(跨电子表格运行) - Google 表格/应用程序脚本

[英]AutoFill Formula (running across spreadsheet) - Google Sheets / Apps Script

我想更改下面的代码以在页面上自动填充公式 - 而不是自动填充

您可以在下面的 2 张图片中看到,我可以将公式添加到 N527,但无法使用代码自动填充整个页面 - 这正是我正在寻找的。

所以图像是我想要完成的事情之前和之后

function LastColumn(){
var spreadsheet = SpreadsheetApp.getActive();
var LastColumn = spreadsheet.getLastColumn();
//spreadsheet.setActiveSheet(spreadsheet.getSheetByName('MASTER'), true);
spreadsheet.getRange('N527').activate();
spreadsheet.getCurrentCell().setFormula('=sum(N497*N498*N499)/100/250');
var destinationRange = spreadsheet.getActiveRange().offset(0, 0, LastColumn -526);
spreadsheet.getRange("N527:BK527").copyTo(destinationRange);  
}

自动填充之前

自动填充后

我无法让附加的代码工作

我正在尝试将 N527 自动填充到 AK527 - 如果上面的单元格有数据。

提前致谢

我相信你的目标如下。

  • 您想将=sum(N497*N498*N499)/100/250的公式从单元格“N527”放到列方向。
  • 在这种情况下,当同一列的第 526 行的值为carton时,您要输入公式。
  • 您想使用 Google Apps 脚本实现此目的。

在这种情况下,下面的示例脚本怎么样?

示例脚本:

function LastColumn() {
  var sheetName = "Sheet1"; // Please set the sheet name.
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var range = sheet.getRange('N526:526');
  var ranges = range.getValues()[0].reduce((ar, r, i) => {
    if (r.toLowerCase() == "carton") ar.push(range.offset(1, i, 1, 1).getA1Notation());
    return ar;
  }, []);
  sheet.getRangeList(ranges).setFormulaR1C1('=sum(R[-30]C[0]*R[-29]C[0]*R[-28]C[0])/100/250');  // This formula is like `=sum(N497*N498*N499)/100/250`.
}
  • 在这种情况下,首先检查单元格“N526:526”是否具有值carton 并且,当单元格具有值时,将公式放入第 527 行。
    • 我为此使用了 RangeList。

参考:

您需要将公式从已经包含公式的单元格复制到要扩展的范围

这意味着您的目标范围应该是“O527:BK527”。

样本:

function autoFill(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName('MASTER');
  var firstCell = sheet.getRange('N527');
  firstCell.setFormula('=sum(N497*N498*N499)/100/250');
  var destinationRange = sheet.getRange("O527:BK527");
  firstCell.copyTo(destinationRange);  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM