【问题标题】:How can I iterate over an unorganized range and pull data until criteria is not met anymore using Apps Script?如何使用 Apps 脚本遍历无组织的范围并提取数据,直到不再满足条件?
【发布时间】:2022-01-05 14:32:19
【问题描述】:

我一直在尝试循环一系列数据并将数据带到另一个工作表,直到循环遇到以下单词之一(工具、绘画)并停在那里。

我打算使用 for 循环 + while,但我不确定这是否是最好的方法。

这是我正在处理的代码草案:

function importPipeworkData() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const input4File = ss.getSheetByName('Input Files Mapping').getRange('B4').getValue()
  const pipeworkSheet = SpreadsheetApp.openByUrl(input4File).getSheetByName('Sheet1');
  const inputPipeworkRng = pipeworkSheet.getRange(2, 1, pipeworkSheet.getLastRow(), 4);
  const inputPipeworkData = inputPipeworkRng.getValues();

  const boqPipeworkSheet = ss.getSheetByName('BOQ Pipework');
  const boqPipeworkRng = boqPipeworkSheet.getRange(4, 1, boqPipeworkSheet.getLastRow(), 4);
  //boqPipeworkRng.clear(); //Clears the sheet to receive updated data;

  const pipeworkData = [];

  for (let a = 0; a < inputPipeworkData.length; a++) {
    while (inputPipeworkData[a][0] != 'Valves') //This is one of the unclear parts

      Logger.log(inputPipeworkData[a][1])
  }
}

以下是数据集示例:https://docs.google.com/spreadsheets/d/1W9zPt1nYKv59j9kjgFqy5Z4KPgvXZUoCusTk06kRQUk/edit?usp=sharing

如果能在这里提供任何帮助,我将不胜感激。

干杯, 安东尼奥

【问题讨论】:

    标签: javascript loops google-apps-script google-sheets while-loop


    【解决方案1】:

    在您的情况下,您应该只使用一个循环

    因此,

    • 如果for 循环,则需要额外的if 语句。
    • 如果出现while 循环,您应该确保增加您的计数器变量。

    for 循环示例:

      const keyWords = ["Tools", "Painting"];
      for (let a = 0; a < inputPipeworkData.length; a++) {
        if (keyWords.indexOf(inputPipeworkData[a][0]) > - 1){
          break;
         }
          Logger.log(inputPipeworkData[a][1]);
          pipeworkData.push(inputPipeworkData[a]);
      }
    }
    

    while 循环示例:

      const keyWords = ["Tools", "Painting"];
      var a = 0;
      while (keyWords.indexOf(inputPipeworkData[a][0]) == - 1){
        Logger.log(inputPipeworkData[a][1]);
        pipeworkData.push(inputPipeworkData[a]);
        a++
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      相关资源
      最近更新 更多