首页 > 解决方案 > 插入公式中的值后尝试从上一行复制公式(都在同一新行上)

问题描述

我有一个现有函数,可以将函数中的值输入到最后一行空白。此功能 1) 从用作表单的工作表上的 6 个单元格中获取数据,2) 切换到存储数据的另一个工作表,然后 3) 创建一个新行并在 A 到 F 列中输入这些特定的 6 个单元格. 这很好用,但不仅仅是将这些值写在 A 到 F 列的新行上,我还需要它从 G 到 J 列的前一行复制公式。这是我函数的现有代码:

function submitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Data Entry Form"); 
  var datasheet = ss.getSheetByName("Data");  
  var values = [[formSS.getRange("C3").getValue(),
                 formSS.getRange("C4").getValue(),
                 formSS.getRange("C5").getValue(),
                 formSS.getRange("C6").getValue(),
                 formSS.getRange("C7").getValue(),
                 formSS.getRange("C8").getValue()]];
  datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 6).setValues(values);
}

从最后一行开始,这清楚地将数据输入到最后一个空行中。但是,不仅仅是在从另一张表(从“数据输入表”)中拉出的 A 列到 F 列中输入这六个值,我还想让它从前一行中拉下表“数据”中的公式目前在 G 到 J 列。

谢谢您的帮助!

标签: google-apps-scriptgoogle-sheets

解决方案


根据希望从工作表中检索公式的方式,您有以下选项:

  • getFormula()- 这将为范围的左上角单元格返回 A1 表示法的公式,如果单元格为空或不包含公式,则返回空字符串;

  • getFormulas()- 相同的行为getFormula,但是,结果将存储在 2D 数组中;

  • getFormulaR1C1()- 这将返回给定单元格的 R1C1 表示法中的公式,或者null如果没有;

  • getFormulasR1C1()- 与 的行为相同getFormulaR1C1,但是,结果将存储在 2D 数组中。

因此,根据您的需要和电子表格的外观,您可以使用上面建议的任何方法。

参考


推荐阅读