2012-06-11 122 views
3

我目前有此腳本:將公式複製到範圍。谷歌電子表格

function addConsultant() 
{ 
var sheet_staffing = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Staffing"); 
var sheet_parametres = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Parametres"); 
var range_tabConsultant_default = sheet_parametres.getRange(26,1,6,64); 
var row_position_newTab = sheet_parametres.getRange(1,1).getValue(); 
range_tabConsultant_default.copyFormatToRange(sheet_staffing, 1, 36, row_position_newTab, row_position_newTab + 6); 
range_tabConsultant_default.copyValuesToRange(sheet_staffing, 1, 36, row_position_newTab, row_position_newTab + 6); 
sheet_parametres.getRange(1,1).setValue(row_position_newTab+6); 
} 

這就好比一個默認選項卡,他們每人一個標籤,但我不知道如何從DEF選項卡複製公式,通過腳本創建標籤。有人可以幫我弄這個嗎?

回答

3

看看Range類的getFormulasgetFormulasR1C1方法。 您還需要使用相應的setFormulassetFormulasR1C1

:如果在多單元格區域您複製混合值和公式[編輯回答評論]

。由於單個單元格只能有一個(或將簡單的值解析爲簡單的公式,例如=「value」),您必須將調用分解爲多個集合,無論是值還是公式。

爲使您的公式在「參照」之後,請使用set/getFormulasR1C1表示法而不是簡單的set/getFormulas

+0

它的工作原理,但並不像我想象的那樣,例如,我想要D40 = sum(D41:D45),但是我要添加在我的工作表上的下一個選項卡需要公式D46 =(D47:D51)。沒辦法做到這一點? – ElPoney

+0

如果我設置了這個:range_newTab.setFormulas(Formulas_tab);在我的CopyValueToRange()之前,它不工作,如果我設置它,CopyValueToRange()不工作。 – ElPoney

+0

好吧,畢竟它的工作,但如果我使用copyValueToRange,我必須使用許多setFormula(因爲setFormulas不工作)。謝謝你的幫助 ! – ElPoney

0

如果腳本使用了用戶使用此函數查看的當前工作表,該怎麼辦? GetActiveSheet

+0

我不認爲它會起作用,因爲如果用戶從錯誤的工作表啓動腳本,它會在工作表上創建一個選項卡並覆蓋信息。它爲什麼我使用一個單元格與最後一個標籤之後的行的位置。 – ElPoney

相關問題