循环遍历列 循环遍历行

use*_*364 2 spreadsheet google-sheets google-apps-script

我正在尝试创建一个循环遍历列并设置第 2、3 和 4 行变量的脚本。我找到了以下示例脚本并尝试重写它以遍历列,但是当我将“行”替换为“列”时“它仍然循环遍历行。

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*sas 5

这是因为循环发生在您获得的数组数组中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);
}
Run Code Online (Sandbox Code Playgroud)