Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用脚本复制Google工作表(驱动器/文档)中的相关公式_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 使用脚本复制Google工作表(驱动器/文档)中的相关公式

Google apps script 使用脚本复制Google工作表(驱动器/文档)中的相关公式,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我试图创建一个脚本,在打开时将公式复制到数据的末尾。 显然,公式本身包含相对寻址和绝对寻址,这需要维护 也就是说,一个公式可能看起来像: =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\u book=

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

也就是说,一个公式可能看起来像:

=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\u book=SpreadsheetApp.getActiveSpreadsheet();
var source_sheet=target_book.getSheetByName(“最近”);
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(公式);
我尝试过getFormulas函数的各种变体。 1) 如果我使用getFormulas或getFormulasR1C1,它会复制所有公式。然后,它还会将所有公式粘贴到每个目标单元格中。 2) 如果我使用getFormula或getFormulaR1C1,它将从范围复制第一个公式,并将其粘贴到目标范围内的每个单元格中。
在此处输入code

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

谢谢

Chris

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