如何从循环范围内计数

时间:2019-09-11 23:02:55

标签: javascript google-apps-script google-sheets google-sheets-api

因此,这里有一些代码可以从可能输入日期或不输入日期的列表中检索数据。如果有日期,则将提取月份,并基于该月是哪个月,我希望该单元格(在这种情况下为17,4)计算该月的日期。该循环遍历页面以提取所有日期,但是我不知道如何对(17,4)进行计数或加多个。

for(var i =8;i<=j;i++) {
    var dates = oppwon.getRange(i,22).getValue();
    var tiers = oppwon.getRange(i,14).getValue();


  var month = new Date(dates).getMonth();



  switch (true){
      case((month==1)):
          if(tiers==1)
    {summary.getRange(17,4).setValue()+1;}

        break;

1 个答案:

答案 0 :(得分:1)

  • 您想在getRange(17,4)month == 1时计算“ D17”(tiers == 1)单元格的值。

如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一

修改后的脚本:

请按如下所示修改脚本。

从:
for(var i =8;i<=j;i++) {
    var dates = oppwon.getRange(i,22).getValue();
    var tiers = oppwon.getRange(i,14).getValue();


  var month = new Date(dates).getMonth();



  switch (true){
      case((month==1)):
          if(tiers==1)
    {summary.getRange(17,4).setValue()+1;}

        break;
至:
var range = summary.getRange(17,4);  // Added
var currentValue = range.getValue();  // Added
for (var i = 8; i <= j; i++) {
  var dates = oppwon.getRange(i,22).getValue();
  var tiers = oppwon.getRange(i,14).getValue();
  var month = new Date(dates).getMonth();
  switch (true) {
    case (month == 1):
    if (tiers == 1) {
      range.setValue(++currentValue);  // Modified
    }
    break;
  • 首先,从“ D17”单元中检索当前值。然后,通过添加1的数量将新值添加到单元格中。

注意:

  • 在for循环中使用getValue()会导致高昂的处理成本。但是我不确定您的整个脚本。所以我无法提出这个建议。

参考文献:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。那时,您能否提供示例电子表格和用于复制问题的脚本。由此,我想确认一下。