2017-02-09 18 views
1

是否可以傳遞不影響所有單元格的二維數組公式。例如,如果我不希望單元格D5受到影響,因爲它已經有一個靜態值,我應該如何將二維數組傳遞給setFormulas()函數。如果使用下面的代碼,它將用空字符串覆蓋單元格D5。在網格中應用腳本設置公式

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

var formulas = [ 
    ["=SUM(B2:B4)", "=SUM(C2:C4)", ""], 
    ["=AVERAGE(B2:B4)", "=AVERAGE(C2:C4)", "=AVERAGE(D2:D4)"] 
]; 

var cell = sheet.getRange("B5:D6"); 
cell.setFormulas(formulas); 
+0

沒有內置的方法來做到這一點。您需要將其作爲兩次不同的寫入操作,或將靜態值添加到陣列中。 –

+0

您想要讀取範圍的值並循環遍歷每個單元格,在任何空單元格中設置公式並跳過任何具有數據的公式,然後將信息保存迴文件。 –

回答

1

試試這個:

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

var value = sheet.getRange("D5").getValue(); 

var formulas = [ 
    ["=SUM(B2:B4)", "=SUM(C2:C4)", value], 
    ["=AVERAGE(B2:B4)", "=AVERAGE(C2:C4)", "=AVERAGE(D2:D4)"] 
]; 

var cell = sheet.getRange("B5:D6"); 

cell.setValues(formulas);