首页 > 解决方案 > 循环的返回值

问题描述

这真让我抓狂!我正在尝试将一个工作表中的值返回到另一张工作表中。

在我的代码中,我记录了详细信息,它们是正确的值。但是,工作表只显示第一行,而不是应该显示的 10 行!

如何将结果返回到不同Sheet(不是Spreadsheet)的特定范围内?

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getSheetByName("config");
  var target = ss.getSheetByName("Sheet7");

  target.getRange("A1").setValue("Year");
  target.getRange("B1").setValue("Start Date");
  target.getRange("C1").setValue("Subject");
  target.getRange("D1").setValue("Start Time");
  target.getRange("E1").setValue("End Date");
  target.getRange("F1").setValue("End Time");
  target.getRange("G1").setValue("All Day");
  target.getRange("H1").setValue("Description");
  target.getRange("I1").setValue("Location");
  target.getRange("J1").setValue("Sequence");
  target.getRange("K1").setValue("TRANSP");
  target.getRange("L1").setValue("CLASS");

  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  SpreadsheetApp.setActiveSheet(sheet.getSheetByName('Sheet7'))

  var tab = SpreadsheetApp.setActiveSheet(sheet.getSheetByName('config'))
  var numberOfRows = tab.getLastRow();
  var firstRow = 1;
  var actualData = tab.getRange(18, 1, 10, 2);
  var values = actualData.getValues();


  var countryfield = tab.getRange(2,8);
  var countryname = countryfield.getValues();
  var yearfield = tab.getRange(1,8);
  var year = yearfield.getValues();


  for (var row in values) {
    for (var col in values[row]) {
      Logger.log(values[row][col]);

      target.getRange("A2").setValue(year); //location
      target.getRange("B2").setValue((values[col]));    
      target.getRange("C2").setValue(/*"Darren:" + */(values[col][1]));
      target.getRange("D2").setValue('00:00'); //start time
      target.getRange("E2").setValue('00:00'); //end date
      target.getRange("F2").setValue('23:59'); //end time
      target.getRange("G2").setValue('true'); //All Day?
      target.getRange("H2").setValue((values[col][1])); //description
      target.getRange("I2").setValue(countryname); //location
      target.getRange("J2").setValue('0'); //sequence
      target.getRange("K2").setValue('OPAQUE'); //transp
      target.getRange("L2").setValue('PUBLIC'); //class
    }
  }
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  SpreadsheetApp.setActiveSheet(sheet.getSheetByName('Sheet7'))
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读