0
我已經做了一個腳本,執行迭代計算以基於項目成本的總百分比來查找值。更快的迭代計算
這是我到目前爲止有:
//<!-- FEE, BOND, & INSURANCE CALCULATOR --!>
function feeBondInsCalculator(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Pretty Sum Form");
sheet.activate();
// Get all variables from named ranges
var bondValue = ss.getRangeByName("bondValue");
var bondCalc = ss.getRangeByName("bondCalc");
var insValue = ss.getRangeByName("insValue");
var insCalc = ss.getRangeByName("insCalc");
var feeValue = ss.getRangeByName("feeValue");
var feeCalc = ss.getRangeByName("feeCalc");
var interCount = ss.getRangeByName("interCount")
// Interative calculation to paste calculated values into the body of the spreadsheet
for (var i = 0; i<11; i++){
feeCalc.copyTo(ss.getRangeByName("feeValue"), {contentsOnly: true});
bondCalc.copyTo(ss.getRangeByName("bondValue"), {contentsOnly: true});
insCalc.copyTo(ss.getRangeByName("insValue"), {contentsOnly: true});
interCount.setValue(i)
}
}
我使用的區域名稱,以便用戶可以添加/刪除行和列,而不必重新設置代碼。執行時,代碼工作正常,但每次迭代大約需要兩秒鐘。有沒有更有效的方法來完成這項工作?
爲什麼你需要的'CopyTo從()'的'for'環行?具有動態信息的'for'循環中唯一的行是'interCount.setValue(i)'。是不是'copyTo()'線只是一遍又一遍地做同樣的事情?如果是這樣,你只需要做一次。 –
這可能是[codereview.se]的問題。參見[Stack Overflow用戶代碼評論指南](http://meta.codereview.stackexchange.com/q/5777/91556) –
@SandyGood我在copyTo()中需要這些值,因爲它們是項目成本總額和基於項目成本的百分比。在前4到5次迭代中,每個時間範圍都被複制和粘貼,整個項目成本會發生變化,因此每個範圍的值都會發生變化。 –