循环遍历行的列循环

时间:2014-07-24 14:35:04

标签: google-apps-script google-sheets spreadsheet

我正在尝试创建一个循环遍历列并从第2,3和4行设置变量的脚本。我发现了以下示例脚本并尝试重写它以循环遍历列但是当我替换“row”时使用“列”它仍会循环遍历行。

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 2;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 2)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[1];       // Second column
    var subject = "Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

1 个答案:

答案 0 :(得分:3)

这是因为循环发生在使用getValues()得到的数组数组中,其中每行内容由列值数组表示。

要迭代一行,只需使用data[0]并循环播放。(data[0][0]data[0][1]data[0][n] ...)

其他行的值将位于data[1][n]data[2][n]等,n是循环索引

另请注意,您选择了由2行组成的范围,并且您在问题中提到需要2,3和4的数据...因此请将范围调整为必要的大小。

代码示例

var data = dataRange.getValues();
for (n in data[0]) {
  var emailAddress = data[0][n];  // First row in each column
  var message = data[1][n];       // Second row in each column
  var subject = "Sending emails from a Spreadsheet";
  MailApp.sendEmail(emailAddress, subject, message);
}