【问题标题】:Copy relative formulas in Google Sheets (Drive / Docs) using scripts使用脚本在 Google 表格(驱动器/文档)中复制相关公式
【发布时间】: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


    【解决方案1】:

    您可能需要查看copyTo(),它复制单元格的方式与您在电子表格中手动复制和粘贴的方式相同(将遵守绝对和相对引用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 2020-04-29
      • 2020-06-10
      • 1970-01-01
      • 2018-07-10
      • 2022-09-22
      • 1970-01-01
      相关资源
      最近更新 更多