我目前有这个脚本:
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选项卡复制到脚本创建的选项卡。有人可以帮我这个吗?
答案 0 :(得分:3)
查看Range
课程的getFormulas和getFormulasR1C1方法。
您还需要使用相应的setFormulas
或setFormulasR1C1
。
[编辑:回答评论]
如果在多单元格范围内,则复制混合值和公式。对于值或公式,您必须将调用分解为多个集合,因为单个单元格只能有一个(或将简单值解析为简单公式,例如=“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());