[英]Google Sheets/Apps Script Copy Formula to new row
對此仍然相當陌生。 我已經能夠使用復選框在單獨的選項卡上觸發新行的創建。 在這個新選項卡上,有一列包含公式。 創建新行時(在第一行之上),我想要新行中的公式。 這是我到目前為止所擁有的:
if(sheet.getSheetName() == CLIENTS) {
var checkCell = ss.getActiveCell();
var checked = checkCell.getValue();
var clientNameCell = checkCell.offset(0,-8).getValue();
var clientType = checkCell.offset(0,-7).getValue();
var sessionChargeCell = checkCell.offset(0, -6).getValue();
var groupChargeCell = checkCell.offset(0,-5).getValue();
var softwareFee = checkCell.offset(0,-4).getValue();
var billFee = checkCell.offset (0,-3).getValue();
var targetSheet = ss.getSheetByName("Client Billing Projections");
var lCol = targetSheet.getLastColumn();
if (checkCell.getColumn() == NEWCLIENTCHECK && checked == true) {
var target = targetSheet.getRange(2, 1, 1, lCol);
var formulas = target.getFormulas();
targetSheet.insertRowBefore(2);
var newRow = targetSheet.getRange(2,1,2,lCol);
newRow.setFormulas(formulas);
}
}
我想我被卡住的地方是在targetSheet.insertRowBefore(2);
. 我認為這與我對 getFormulas 和 setFormulas 的使用有關,但我真的無法理解它。 這里沒有語法錯誤。 如您所見,我已經從我的第一張表 (CLIENTS) 中收集了值; 我打算將它復制到另一個選項卡上,但我也必須復制公式。 任何幫助,將不勝感激。
這是工作表的一個例子那里已經有很多工作代碼了。 您將在這里看到的大部分內容可能在第 222 - 238 行之間。到目前為止,其他一切都有效。
Client Billing Projections
表中的第 2 行中插入一個新行。如果我的理解是正確的,這個修改怎么樣?
var formulas = target.getFormulas()
從var target = targetSheet.getRange(2, 1, 1, lCol);
. 這是包括一行的二維數組。 檢索到的公式使用newRow.setFormulas(formulas)
和var newRow = targetSheet.getRange(2,1,2,lCol)
。 在這種情況下, formulas
具有包含 2 行的二維數組。
當您的腳本被修改時,請進行如下修改。
從: var newRow = targetSheet.getRange(2,1,2,lCol);
到:
var newRow = targetSheet.getRange(2,1,1,lCol);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.