Performance 快速迭代计算

Performance 快速迭代计算,performance,google-apps-script,google-sheets,Performance,Google Apps Script,Google Sheets,我制作了一个脚本,它执行迭代计算,以根据项目成本的总百分比找到值 这就是我到目前为止所做的: //<!-- FEE, BOND, & INSURANCE CALCULATOR --!> function feeBondInsCalculator (){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Pretty Sum Form"); sheet.act

我制作了一个脚本,它执行迭代计算,以根据项目成本的总百分比找到值

这就是我到目前为止所做的:

//<!-- 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)
    } 
  }

/您可以尝试直接在公式中引用您的范围,而不是使用copy,如:

=arrayformula(if(bondValue <>"",bondValue,""))
=arrayformula(if(bondValue“”,bondValue“”)

for
循环中为什么需要
copyTo()
行?
循环中唯一具有动态信息的行是
interCount.setValue(i)
copyTo()
行不是一次又一次地做同样的事情吗?如果是这样的话,你只需要做一次。这可能是你的一个问题。请参阅@SandyGood我需要copyTo()中的这些值,因为它们是项目成本总额的一部分,并且基于项目成本的百分比。在前4或5次迭代中,每个时间范围都会被复制和粘贴,整个项目成本会发生变化,因此每个范围的值都会发生变化。我认为这是行不通的。每个范围只是一个单元格,我并不是真正使用数组。我更多的是尝试创建一个迭代(循环)计算。