谷歌应用程序脚本。基于条件循环的单元格项目列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌应用程序脚本。基于条件循环的单元格项目列表相关的知识,希望对你有一定的参考价值。

我想让我的代码循环浏览列L中列出的所有值,如果该值大于0,那么我想将同一行的列K和列A添加到列表中。这就是我所得到的,它没有列出我的项目,但它发送了带有初始信息的警报。

function sendEmail() {
  // getting data from spreadsheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plan");
  var startRow = 2; // First row of data to process
  var numRows = 70; // Number of rows to process

  var dataRange = sheet.getRange(startRow, 12, numRows, 1);
  var data = dataRange.getValues();
  
  //email Information
  var subject = 'Current Items Needed';
  var message = 'Items needed:' + '
';
  
  
  var ui = SpreadsheetApp.getUi(); // Same variations.


  //looping through all of the rows
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
      
     
    //expiration date information
    var quantity = row[12];  //Look at column L
    var listItem = row[11] + ' of ' + row[1] + '
'; // 'Col K' of 'Col A'

    //checking for today
    if ( quantity > 0 ) {
      message += listItem;
        
    }
  }

  ui.alert(message);
}
    
答案

问题是数组的定义和索引的使用。

  1. 语法为 getRange()row, column, numRows, numColumns,所以用于检索1到12的所有cloumns。

    var dataRange = sheet.getRange(startRow, 1, numRows, 12);

  2. 请注意,数组的第一个元素不是... 10. 因此,A列是 row[0] 等,正确的语法是

var quantity = row[11];  //Look at column L
var listItem = row[10] + ' of ' + row[0] + '
'; // 'Col K' of 'Col A'

以上是关于谷歌应用程序脚本。基于条件循环的单元格项目列表的主要内容,如果未能解决你的问题,请参考以下文章

强制应用条件格式

在非手动更改/编辑单元格时触发脚本 - 谷歌脚本

谷歌应用程序脚本设置单元格公式需要通过追加行添加的行号

单个单元格中的计数或总和(?)项目,与Excel中的列表中的条件匹配

如何使用For语句将列表框中选择的项目分配到每个单元格中

谷歌应用脚​​本没有循环