将公式复制到范围。 Google电子表格

时间:2012-06-11 12:40:21

标签: google-apps-script google-sheets

我目前有这个脚本:

function addConsultant()
{
var sheet_staffing = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Staffing"); 
var sheet_parametres = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Parametres");
var range_tabConsultant_default = sheet_parametres.getRange(26,1,6,64);
var row_position_newTab = sheet_parametres.getRange(1,1).getValue();
range_tabConsultant_default.copyFormatToRange(sheet_staffing, 1, 36, row_position_newTab, row_position_newTab + 6);
range_tabConsultant_default.copyValuesToRange(sheet_staffing, 1, 36, row_position_newTab, row_position_newTab + 6);
sheet_parametres.getRange(1,1).setValue(row_position_newTab+6);
}

这就像一个默认选项卡,它们是每人一个选项卡,但我不知道如何将公式从def选项卡复制到脚本创建的选项卡。有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:3)

查看Range课程的getFormulasgetFormulasR1C1方法。 您还需要使用相应的setFormulassetFormulasR1C1

[编辑:回答评论]

如果在多单元格范围内,则复制混合值和公式。对于值或公式,您必须将调用分解为多个集合,因为单个单元格只能有一个(或将简单值解析为简单公式,例如=“value”)。

要让公式“跟随”引用,请使用set/getFormulasR1C1表示法而不是更简单的set/getFormulas

答案 1 :(得分:0)

如果脚本使用了当前用户使用此功能查看的工作表,该怎么办? GetActiveSheet

答案 2 :(得分:0)

以下是如何使用相对引用将A1中的公式复制到A2:A范围内的示例:

var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.getRange("A2:A").setFormulaR1C1(sheet.getRange("A1").getFormulaR1C1());