【发布时间】:2014-12-16 11:33:25
【问题描述】:
我正在尝试创建一个脚本,在打开时将公式复制到数据的末尾。 显然,公式本身包含相对寻址和绝对寻址,需要维护。
IE,一个公式可能如下所示:
=if($C2="no", "no", VLOOKUP(concatenate($A2,$B2,$C2),'v2'!$A$2:$CN,MATCH(H$1,'v2'!$B$1:$CN$1,0)+1,FALSE))
公式跨越多列,列的数量也可能随时间而变化。因此,无法为每列创建自定义操作。
这是我目前得到的:
var target_book = SpreadsheetApp.getActiveSpreadsheet();
var source_sheet = target_book.getSheetByName("most_recent");
var rows = source_sheet.getLastRow();
var cols = source_sheet.getLastColumn();
var formulas = source_sheet.getRange("C2:CI2").getFormulas();
source_sheet.getRange(3,3,rows -3, cols-2).setFormulas(formulas);
我已经尝试过 getFormulas 函数的变体。
1)如果我使用 getFormulas 或 getFormulasR1C1 它会复制所有公式。然后它还将所有公式粘贴到每个目标单元格中。
2) 如果我使用 getFormula 或 getFormulaR1C1 它最终会从范围中复制第一个公式并将其粘贴到目标范围内的每个单元格中。enter code here
我有点茫然,我只想做最基本的复制粘贴,更新相对寻址。这有可能吗?
谢谢,
克里斯
【问题讨论】:
标签: google-apps-script google-sheets