首页 文章

使用脚本在Google表格( Cloud 端硬盘/文档)中复制相关公式

提问于
浏览
1

我正在尝试创建一个脚本,在打开时将公式复制到数据的末尾 . 显然,公式本身包含相对和绝对寻址,并且需要维护 .

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

我有点不知所措,我只是想做最基本的复制和粘贴,更新相对寻址 . 这有可能吗?

谢谢,

克里斯

1 回答

  • 4

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

相关问题