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次迭代中,每个时间范围都被复制和粘贴,整个项目成本会发生变化,因此每个范围的值都会发生变化。 –