2014-11-21 53 views
0

我試圖創建一個腳本,打開復制公式到數據的末尾。 顯然,公式本身包含相對和絕對尋址,並且需要維護。使用腳本在Google表格(驅動器/文檔)中複製相關公式

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

我有點茫然,我只是想做最基本的複製和粘貼,更新相對尋址。這有可能嗎?

感謝,

克里斯

回答

2

你可能想看看copyTo(),這將複製單元格以同樣的方式,如果你是複製和在電子表格手工粘貼(絕對和相對引用將得到尊重)。

相關問題